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

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

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

9325 次点击
所在节点    程序员
87 条回复
Obrigado0815
2020-10-20 11:38:13 +08:00
我只知道,用浏览器导出会卡死。
lifeintools
2020-10-20 11:38:23 +08:00
建议 CSV....
zjuster
2020-10-20 11:57:57 +08:00
CSV 啊。
100M 的 Excel 是什么电脑才能打开的?大部分产品经理配置的电脑是打不开的,还可能丢数据。

我们之前处理这种数据,是用 google 的 openrefine 部署到服务器上,比 Excel CSV 都方便。
rund11
2020-10-20 12:06:52 +08:00
导出过 30 万,感觉挺好。只要肯请吃饭,说啥都好办
rund11
2020-10-20 12:07:51 +08:00
@Leigg #4 用 wps 似乎不会卡死,最近试过
Vincentcow
2020-10-20 12:29:00 +08:00
恐怕没有多少办公电脑能跑得动这种表格
现在 Office 要拼配置才能正常运转了吗
ho121
2020-10-20 12:34:20 +08:00
100W 数据应该不是最终需求,而是用来汇总成各种报表的。

如果不想给 100W 的源数据,那么接到的需求可能是各种报表需求,比 100W 数据还要麻烦
PanJiaChen
2020-10-20 13:11:13 +08:00
可以将 excel 拆成多个,然后压缩成一个 zip 导出,压缩率还是很高的。单个拆解后的 excel 打开也不会很卡。
hotsun168
2020-10-20 13:24:23 +08:00
CSV 格式有的场景无法完全替代 Excel,我这边的场景下,导出时很多字段有前导 0,或者超过 15 位的整数,以及时间戳要用 yyyy-MM-dd 的形式标识。
这些字段在 CSV 用 Excel 打开的时候,前导 0 会因为数值类型不显示,很大的整数会被用科学技术法表示,时间戳是斜杠分隔。
业务那边的要求,一般是直接打开不作任何处理的情况下要完整显示。
Angzk3348
2020-10-20 13:41:53 +08:00
大佬出现了, 这个是 vue-element-admin 的 PanJiaChen 吗 #48
isnullstring
2020-10-20 13:50:51 +08:00
垃圾需求
kajweb
2020-10-20 14:04:43 +08:00
@hotsun168 导出 tabel 头的 html 格式试试。
icchux
2020-10-20 14:10:14 +08:00
@XDy0 哈哈哈,兄弟,内行啊~~~~
rocksolid
2020-10-20 14:12:36 +08:00
杠一下,csv 图标和 excel 是不一样的 哈哈
yulitian888
2020-10-20 14:15:17 +08:00
有必要告诉你们领导,有一种叫做 Access 的东西,是 Excel 他们家兄弟。
实际上,不存在单纯为了导出而导出的情况。导出来必然是要用的啊,后续的处理有多少坑,完全取决于你们准备把自己埋得多深。
有这么个新闻,不妨给你们领导感受一下: https://tech.sina.com.cn/d/i/2020-08-11/doc-iivhvpwy0355694.shtml
rocksolid
2020-10-20 14:18:34 +08:00
@hotsun168 如果只是看数据的话,你的这些问题 前面加个单引号就解决了
hotsun168
2020-10-20 14:24:31 +08:00
@kajweb #52 业务要求中限定了格式,不接受其他格式。
hack
2020-10-20 14:31:14 +08:00
导出 csv,产品是不是最近报了 python 的班。。。
Erroad
2020-10-20 14:34:52 +08:00
经常导百万级的表,习惯了,csv 50w 切一个文件,zip 打包下。前导 0 之类的用=""包起来
Mithril
2020-10-20 14:35:15 +08:00
刚刚做了一个类似的沙雕需求。。。
最重要的就是要保证你这个 100W 的查询不会堵死数据库。。。
反正我是做了个优先级最低的 task,每次导出 1W 数据到 CSV,然后 task sleep 一下。整个系统就这一个 task 的实例,同一时间就只有一个人能用。
反正你愿意导这 100W 你就等着去吧,这 100W 的 CSV 本身就巨大。

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

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

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

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

© 2021 V2EX