{ "info": { "author": "potykion", "author_email": "potykion@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# xlsx_from_json\n\nCreates xlsx from json via [openpyxl](https://openpyxl.readthedocs.io/en/latest/index.html).\n\n## Usage\n\nCreate .json file with following structure:\n\n```java\n{\n \"rows\": [\n {\n \"cells\": [\n {\n \"value\": \"Sample text\",\n // merge 5x2 cell range\n \"width\": 5,\n \"height\": 2,\n // openpyxl style: https://openpyxl.readthedocs.io/en/2.5/styles.html\n \"style\": {\n \"font\": {\n \"name\": \"Times New Roman\",\n \"size\": 12\n },\n \"border\": {\n \"bottom\": {\n // openpyxl border styles: // https://openpyxl.readthedocs.io/en/stable/_modules/openpyxl/styles/borders.html\n \"border_style\": \"medium\",\n \"color\": \"FFFFFFFF\"\n }\n }\n }\n }\n ],\n // move row by 2x1\n \"skip_columns\": 2,\n \"skip_rows\": 1,\n // change row height\n \"row_height\": 10\n }\n ],\n \"start_column\": 1,\n \"start_row\": 1,\n // change column widths\n \"column_widths\": [\n {\n // column_number or column_letter\n \"column_number\": 1,\n \"width\": 10\n }\n ],\n // set number format (e.g. 1.234 -> 1.23)\n \"number_format\": \"0.00\",\n // apply style to all cells\n \"default_style\": {\n \"font\": {\n \"bold\": true\n }\n }\n}\n```\n\nCreate openpyxl workbook via ``xlsx_from_json`` function:\n\n```python\nimport json\nfrom xlsx_from_json import xlsx_from_json\n\nwith open(\"data.json\", encoding=\"utf-8\") as f:\n json_data = json.load(f)\n\nwb = xlsx_from_json(json_data)\n```\n\nCreated workbook will have values:\n\n```python\nsheet = wb.active\nassert sheet.cell(row=2, cell=3).value == \"Sample text\"\n```\n\nThe same true for the styles (cell ctyle + default style):\n\n```python\nsheet = wb.active\nassert sheet.cell(row=2, cell=3).font.name == \"Times New Roman\"\nassert sheet.cell(row=2, cell=3).font.bold == True\n```\n\n\nNow you can use workbook according to openpyxl [guide](https://openpyxl.readthedocs.io/en/latest/usage.html).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/potykion/xlsx_from_json", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "xlsx-from-json", "package_url": "https://pypi.org/project/xlsx-from-json/", "platform": "", "project_url": "https://pypi.org/project/xlsx-from-json/", "project_urls": { "Homepage": "https://github.com/potykion/xlsx_from_json" }, "release_url": "https://pypi.org/project/xlsx-from-json/1.0.1/", "requires_dist": [ "attrs (>=18.1.0)", "openpyxl (>=2.5.4)" ], "requires_python": "", "summary": "Creates xlsx from json via openpyxl.", "version": "1.0.1" }, "last_serial": 4138226, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4c7185ec319021dd4f24186e9eb9aff1", "sha256": "e1f75b60025ca4d3229bc00251109bee4feacff7aa768bf63d606e0969352637" }, "downloads": -1, "filename": "xlsx_from_json-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4c7185ec319021dd4f24186e9eb9aff1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5652, "upload_time": "2018-07-26T20:45:30", "url": "https://files.pythonhosted.org/packages/dc/cc/7e8975f1eba6370f234c7ed52875769ae9f1c361eab62c5a34143bff3f1f/xlsx_from_json-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77d69c1047af3a399a0cd240483bf54c", "sha256": "8748703485fc6f4aa20879e1346fd0e2a11c297bf670806c198fe3c08af3bdd0" }, "downloads": -1, "filename": "xlsx_from_json-0.1.0.tar.gz", "has_sig": false, "md5_digest": "77d69c1047af3a399a0cd240483bf54c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4209, "upload_time": "2018-07-26T20:45:31", "url": "https://files.pythonhosted.org/packages/d8/ff/2950fe5fef1d2459b209f1c0e8a2bd3f0286a2dd00abe2e8304432196794/xlsx_from_json-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0899a59a2620c944fba62af049e1b843", "sha256": "08eee193fb41b337170818ad3d3478ffdb9249de427d7e784cc82a33c472e8a9" }, "downloads": -1, "filename": "xlsx_from_json-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0899a59a2620c944fba62af049e1b843", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5704, "upload_time": "2018-07-26T21:45:30", "url": "https://files.pythonhosted.org/packages/36/b4/7cec72717b4be6c6d8fcc258fa468957b33e6e8dbd58158c6b30232acab6/xlsx_from_json-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5b9df272f1550f3cde0159a1cb7df80", "sha256": "d6ba91f2c1c2b793cc128b7df34250f46c491854fb399d1bc8660294811ff119" }, "downloads": -1, "filename": "xlsx_from_json-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f5b9df272f1550f3cde0159a1cb7df80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4274, "upload_time": "2018-07-26T21:45:32", "url": "https://files.pythonhosted.org/packages/17/7e/f8d4113bb85b7615ae37141d3ee4036c5903546ed65db6d4e2a3047a892e/xlsx_from_json-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "c96c533f1776dfa26ab3ffa2d31fdafd", "sha256": "f01e27ab86811ac14784037e956aaa4ea9ff1bf0637ac89f5057d399b2fef329" }, "downloads": -1, "filename": "xlsx_from_json-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c96c533f1776dfa26ab3ffa2d31fdafd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5709, "upload_time": "2018-07-27T13:59:37", "url": "https://files.pythonhosted.org/packages/c3/e2/249fc942433ab34de1e3bd988b65c26312a0c13add2d137e9eebe26e1c6d/xlsx_from_json-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "061b50ceac45ba28eca1b9766c3bee1c", "sha256": "2ae42f4b5ff5e1adfc1f0cb844d723b58d4f96db551a9700eb2ffa0b1663cc72" }, "downloads": -1, "filename": "xlsx_from_json-0.1.2.tar.gz", "has_sig": false, "md5_digest": "061b50ceac45ba28eca1b9766c3bee1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4260, "upload_time": "2018-07-27T13:59:38", "url": "https://files.pythonhosted.org/packages/91/ee/bbbf598a698d8f72c47ada3c4c8ee0c4034b3238be85f8146cd191a5ca75/xlsx_from_json-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b1c375c077a3162b18ebd43a134de5a6", "sha256": "fcb5fb8040a76f3e7311035209932c4cee11476f0fa0797c16b0530e00e1187e" }, "downloads": -1, "filename": "xlsx_from_json-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b1c375c077a3162b18ebd43a134de5a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5761, "upload_time": "2018-07-27T21:30:36", "url": "https://files.pythonhosted.org/packages/2f/84/f4807e4da38a7a7ca1a568221df6ea32013130ecac14c33afb0961cc193b/xlsx_from_json-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a711670d8c31bfbfaf111ae212cc82cc", "sha256": "b7b6d5eb89f3b1e6eb830c83e8ae26e3395106683298fffd35bc3197f20d0fe0" }, "downloads": -1, "filename": "xlsx_from_json-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a711670d8c31bfbfaf111ae212cc82cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4349, "upload_time": "2018-07-27T21:30:38", "url": "https://files.pythonhosted.org/packages/72/e3/bd31a0eeffbc855ca4516537ce543c17a8b4af2eac74aff40fa236c21e51/xlsx_from_json-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d0c8b4d6c95946e52af7ae588edc9b4b", "sha256": "753815a87478a260e7ea88ef8fda691462e27688324e8d7b5f3c7361cd82631d" }, "downloads": -1, "filename": "xlsx_from_json-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d0c8b4d6c95946e52af7ae588edc9b4b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6375, "upload_time": "2018-07-29T19:26:28", "url": "https://files.pythonhosted.org/packages/89/96/b8ce7effea8a18ce7c3fb3a1b7b4566ce1812920ccd7aed075722d540dda/xlsx_from_json-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "204f2767368c6a33746079932455f18d", "sha256": "ceb4956a819b8468b1bdd823006fc397ba44a21683667e20b518d60d4dfda4d4" }, "downloads": -1, "filename": "xlsx_from_json-0.3.0.tar.gz", "has_sig": false, "md5_digest": "204f2767368c6a33746079932455f18d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4961, "upload_time": "2018-07-29T19:26:31", "url": "https://files.pythonhosted.org/packages/12/75/0bae1ca5494b90208ae255e2e09ddc5273c3a283e81fc87cb9cd59f181b4/xlsx_from_json-0.3.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "32342f1f709042d64df63586c1bd26db", "sha256": "9cfa8305920853fb9ec7902af63bfe77707894fc33d3ee8edada462b10b84a3d" }, "downloads": -1, "filename": "xlsx_from_json-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "32342f1f709042d64df63586c1bd26db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6485, "upload_time": "2018-07-31T15:03:29", "url": "https://files.pythonhosted.org/packages/f7/14/ca009bb89f7f36170b9e3c613036233b35bc9b7b97099a668dfa86f8fc44/xlsx_from_json-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1a77055e162e1b89349e5be344fcd08", "sha256": "725971c46b29e2ac4f76c02fa3b36bd2fda0220f911abc79304adc562b87cb9c" }, "downloads": -1, "filename": "xlsx_from_json-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d1a77055e162e1b89349e5be344fcd08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5084, "upload_time": "2018-07-31T15:03:30", "url": "https://files.pythonhosted.org/packages/ca/ea/ef30740419c81ba45a06a5c60abb85d68eaa9b397d7f2fee8816dc2c6346/xlsx_from_json-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "1213fc59366359345c73fbf188a90a63", "sha256": "e389cd487b82d75698400a266057358de4f66b0aea5ac28cc62e5493e7f771f5" }, "downloads": -1, "filename": "xlsx_from_json-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1213fc59366359345c73fbf188a90a63", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6525, "upload_time": "2018-08-05T19:22:42", "url": "https://files.pythonhosted.org/packages/2d/3c/f483e314f00719da73923abbac3570f2cf80e36dfe895d8dc2b926b79e60/xlsx_from_json-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de4420604a8615c89aa0e8a5fabbaf7c", "sha256": "3ff087e8e775ce0c5058661c303c59939346485ae49268f495129bbea0d07216" }, "downloads": -1, "filename": "xlsx_from_json-1.0.1.tar.gz", "has_sig": false, "md5_digest": "de4420604a8615c89aa0e8a5fabbaf7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5126, "upload_time": "2018-08-05T19:22:45", "url": "https://files.pythonhosted.org/packages/09/06/7d4e9ce23bc37c9bae48c751e44c80d42eecca2e415f1afbeee83d959ef4/xlsx_from_json-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1213fc59366359345c73fbf188a90a63", "sha256": "e389cd487b82d75698400a266057358de4f66b0aea5ac28cc62e5493e7f771f5" }, "downloads": -1, "filename": "xlsx_from_json-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1213fc59366359345c73fbf188a90a63", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6525, "upload_time": "2018-08-05T19:22:42", "url": "https://files.pythonhosted.org/packages/2d/3c/f483e314f00719da73923abbac3570f2cf80e36dfe895d8dc2b926b79e60/xlsx_from_json-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de4420604a8615c89aa0e8a5fabbaf7c", "sha256": "3ff087e8e775ce0c5058661c303c59939346485ae49268f495129bbea0d07216" }, "downloads": -1, "filename": "xlsx_from_json-1.0.1.tar.gz", "has_sig": false, "md5_digest": "de4420604a8615c89aa0e8a5fabbaf7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5126, "upload_time": "2018-08-05T19:22:45", "url": "https://files.pythonhosted.org/packages/09/06/7d4e9ce23bc37c9bae48c751e44c80d42eecca2e415f1afbeee83d959ef4/xlsx_from_json-1.0.1.tar.gz" } ] }