Asynchronous xlsx files generator
Project description
aioxlsxstream
Generate the xlsx file on fly without storing entire file in memory. Generated excel workbook contain only one sheet. All data writes as strings.
Installation
pip install aioxlsxstream
Requirements
- Python 3.8+
Simple exapmle
import aioxlsxstream
import asyncio
async def main():
async def rows_generaor():
async def row_cells_generator(row):
for col in range(5):
yield row*5 + col
for row in range(10):
yield row_cells_generator(row)
xlsx_file = aioxlsxstream.XlsxFile()
xlsx_file.write_sheet(rows_generaor())
with open("example.xlsx", "wb") as f:
async for data in xlsx_file:
f.write(data)
asyncio.run(main())
aiohttp Example
from aiohttp import web, hdrs
import aioxlsxstream
async def rows_generaor():
async def row_cells_generator(row):
for col in range(5):
yield row*5 + col
for row in range(10):
yield row_cells_generator(row)
async def handle(request):
filename = "example.xlsx"
response = web.StreamResponse(
status=200,
headers={
hdrs.CONTENT_TYPE: "application/octet-stream",
hdrs.CONTENT_DISPOSITION: (f"attachment; " f'filename="{filename}"; '),
},
)
await response.prepare(request)
xlsx_file = aioxlsxstream.XlsxFile() # or CsvFile("csv") or CsvFile("tsv")
xlsx_file.write_sheet(rows_generaor())
async for data in xlsx_file:
await response.write(data)
return response
app = web.Application()
app.add_routes([web.get('/', handle)])
if __name__ == '__main__':
web.run_app(app)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aioxlsxstream-1.0.3.tar.gz
(20.6 kB
view details)
Built Distribution
File details
Details for the file aioxlsxstream-1.0.3.tar.gz
.
File metadata
- Download URL: aioxlsxstream-1.0.3.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 913fc3987a72739e233216c771a6efadecaddca86f18b59fd02230c09bef3e0f |
|
MD5 | 0727666e6099b3f99a899fc7bc9823cc |
|
BLAKE2b-256 | 6754089741cc7a39f37f07ef4251667a89bf5d3edfd88a658978ee2d79381d81 |
File details
Details for the file aioxlsxstream-1.0.3-py3-none-any.whl
.
File metadata
- Download URL: aioxlsxstream-1.0.3-py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd65ae92ebfb3d793b57f874fb6f5c6272e2bcbe11d5013280a56136acd7c1a9 |
|
MD5 | b1566cbd3cfff9933938effefc88734c |
|
BLAKE2b-256 | 82ffc65b560b66ca77e59dd42ecaa327f6f8e34c454976d01f656ba8fe301d17 |