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)
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|