求 aiohttp 后端 直接生成 xlsx 和响应下载的 demo,实在找不到教程。。
另外请问各位对于自己不熟悉库,有什么技巧能较系统了解这个库。
求 aiohttp 后端 直接生成 xlsx 和响应下载的 demo,实在找不到教程。。
另外请问各位对于自己不熟悉库,有什么技巧能较系统了解这个库。
|
supermoonieAug 18, 2020 via iPhone
1
aio 不是 windows 玩的转吗,linux 服务器大多是 nio 吧,不熟悉的话就找找书系统看下
|
|
qile1Aug 18, 2020 via Android
2
datatable 有个导出 excel 和复制及打印的按钮,你参考下看是否类似
|
|
fyAug 18, 2020 via Android
3
?这跟框架没关系,抄起 openxlsx 一把梭然后 response 写 bytes 就行了
|
|
VegetableAug 18, 2020
4
搞不懂你们为什么用 aiohttp 直接做 server...
你的重点应该是怎么生成一个 excel 保存在内存中。这个要看你什么库,以 openpyxl 为例 正常时 wb.save(filename) 你用 body = BytesIO() wb.save(body) 将 xls 变成一个字节码,在把这个字节码返回,设置好文件名和 mimetype 就行了。 |
|
so1nAug 18, 2020 via Android
5
@supermoonie 在 linux 用 epoll 在 win 好像是 select
|
|
fasionchanAug 18, 2020
6
openpyxl,这有篇入门文章: https://python.fasionchan.com/zh_CN/latest/libs/openpyxl.html
|
|
supermoonieAug 18, 2020 via iPhone
7
@so1n win 的 aio 支持走在了前面
|
|
8
xlsx 就是一个 zip 文件,里面都是 xml,大部分 xml 可以用默认值,sheet1.xml 放工作簿 1,可以流式生成,不需要临时文件。我写的一个 go 版本的: https://gist.github.com/boolking/0c920aab2dc6713150dab35cd02e3367
xlsx 的中 xml 的格式可以参考: https://www.ecma-international.org/publications/standards/Ecma-376.htm |
|
boolkingAug 18, 2020
9
python 标准库的 zipfile 不支持流式生成,可以用:
https://github.com/arjan-s/python-zipstream https://github.com/kbbdy/zipstream |
|
sometimesna1veAug 18, 2020
10
@boolking 学习了,多谢!
|
|
fareerAug 18, 2020
11
有偿提供源码
|
|
14
@fasionchan 非常感谢
|