有必要导出一个 100W 数据的 Excel

2020-10-20 08:41:25 +08:00
 hackingwu

产品想要导出数据到 Excel,想要导出的数据量最多可能会到 100w 的数据量。Excel 文件估计会有 200MB 。 我觉得这个需求是很不合理和没用。请问大家有类似的需求吗 ,使用过程中有遇到什么问题吗?

9275 次点击
所在节点    程序员
87 条回复
woahishui
2020-10-20 08:45:39 +08:00
导出呗,又不是很不好做,有现成的几分钟就搞定了
hbolive
2020-10-20 08:46:08 +08:00
2007 以上版本,单页最大行数是 1048576 行,别超了就行
liuzhaowei55
2020-10-20 08:46:49 +08:00
可以确认下数据导出后如何使用,数据毕竟还是拿来用的,除非对方准备跑路了。
Leigg
2020-10-20 08:51:44 +08:00
100w 的数据他怎么看,打开都卡死他电脑,还想统计?一个数据库的数据怎么可能直接导出到一个 excel,那还要数据库干嘛,说到这里最主要我不是吐槽产品,他是不懂这个数据量级已经大到一种程度,没办法用 excel 查看了,你作为技术,先把这个情况告知他,如果他还觉得 ok,那行你先做。
这种需求是无脑的,你最好问他有什么数据统计需求,直接用 SQL 查出来给他就行了。
XDy0
2020-10-20 08:52:34 +08:00
别问,问就让你分页导,条件查询导,百分比导,前后导。。。。。。。
weizhen199
2020-10-20 08:53:34 +08:00
搞成破真 excel(csv
xuanbg
2020-10-20 08:53:56 +08:00
有,但我不会去实现这种需求,而是告诉用户可以分批导出。其实一般智商在线的,自己就找到办法了,根本不会来找我。
CheckTime
2020-10-20 09:00:14 +08:00
把英国那个新冠病例丢失的报道给上面看
pizalo
2020-10-20 09:01:15 +08:00
也不算离谱吧,只不过超 100w 的数据就只能拆分下
xiangyuecn
2020-10-20 09:02:58 +08:00
随便啦,导个 csv 就 ok 啦,这种人会以为 csv 和 xls(x)是同样的东西,反正默认都是显示的 excel 的图标。
nutting
2020-10-20 09:04:39 +08:00
是在页面下载导出?用的人多吗,考虑带宽,对服务器影响。另外就是导出后到底能不能打开和流畅查看。
guisheng
2020-10-20 09:10:46 +08:00
先给他生成一个 100w 数据的 excel 发给他 玩玩。
zyxbcde
2020-10-20 09:14:08 +08:00
让导就导呗,也不麻烦,100 多万还不至于卡死,最多慢点,wps 好像把 100 万放开了。虽然可能觉得不够高大上,但是不动脑子方面 excel 完胜。
palmers
2020-10-20 09:17:01 +08:00
100w 数据给他了 机器差一点 打开都需要好久 甚至打不开 所以也就失去了导出查看的意义 如果是导出然后二次加工, 我建议可以使用其他途径比如 直接通过大数据抽数 或者提供查询接口 ; 或者导出多个 excel 或者一个 excel 多个 sheet 页
clf
2020-10-20 09:18:51 +08:00
导出到 csv 吧。导出其实还好,导入的坑比较多。

导出的时候可以考虑做个限制,同时同用户只允许创建一个导出任务,当然不做限制也无所谓~记得做好前端的交互,数据量大的时候下载文件的 API 接口响应时间长,可能会超时。避免用户以为没反应点击按钮多次(点击一次后就限制,刷新后点击提示已经有导出任务在运行)
考虑做进度条的形式,后端最好是做成判断完条件+条件下导出数据不为空就直接返回开始导出的任务 ID,然后在异步任务里实时显示导出进度,完成后前端下载。
raymanr
2020-10-20 09:20:47 +08:00
我来安慰下楼主吧, 我遇到过之前的人给其他部门做的 vba 查询导出 excel , 导出了 100 万行, 90 列, 表格里面充斥着数据透视表, 整个表 1 个多 G

i5 + 16G 电脑需要十多分钟才可以打开, 后来数据量继续增加

终于 vba 的 copyFromRecord 撑不住了, 我试着改成 openpyxl 生成, 通宵都没运行完, 后头直接给他生成了个 csv, 他嫌里面不能包含数据透视表, 有自己琢磨去了

看到还有和你家产品经理差不多的**, 心里有没有好受一点?
raymanr
2020-10-20 09:22:06 +08:00
根据我和这种**打交道的经验, 别和他争, 白痴只会把你拉到和他同样的层次, 然后用丰富的经验打败你

反正公司给钱, 做就行了
GeruzoniAnsasu
2020-10-20 09:24:56 +08:00
需求是有取舍的
就算一个需求 10%的情况下没法用,70%的情况下不好用,20%实验室环境能用

但假如甲方客户只需要满足 1%情况下的需求,售后能麻烦自己替客户搞定 80%情况下不好用但能实现的需求,那为什么不做呢

在前场看来这可能是一个一下覆盖了客户 90%场景的好 feature,只有写代码的才会在 10%的瓶颈上心力交瘁。对于想要这个 feature 的客户来说,到达那 10%的瓶颈是后面加钱才考虑的事
li02
2020-10-20 09:33:52 +08:00
200MB 的 EXCEL,一个 sheet 100w 行
levelworm
2020-10-20 09:33:56 +08:00
导 csv 不就行了,太大了让他用 power query 导入,一千万行都行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/716554

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX