产品想要导出数据到 Excel,想要导出的数据量最多可能会到 100w 的数据量。Excel 文件估计会有 200MB 。 我觉得这个需求是很不合理和没用。请问大家有类似的需求吗 ,使用过程中有遇到什么问题吗?
1
woahishui 2020-10-20 08:45:39 +08:00 via Android
导出呗,又不是很不好做,有现成的几分钟就搞定了
|
2
hbolive 2020-10-20 08:46:08 +08:00
2007 以上版本,单页最大行数是 1048576 行,别超了就行
|
3
liuzhaowei55 2020-10-20 08:46:49 +08:00 via Android
可以确认下数据导出后如何使用,数据毕竟还是拿来用的,除非对方准备跑路了。
|
4
Leigg 2020-10-20 08:51:44 +08:00 via Android 3
100w 的数据他怎么看,打开都卡死他电脑,还想统计?一个数据库的数据怎么可能直接导出到一个 excel,那还要数据库干嘛,说到这里最主要我不是吐槽产品,他是不懂这个数据量级已经大到一种程度,没办法用 excel 查看了,你作为技术,先把这个情况告知他,如果他还觉得 ok,那行你先做。
这种需求是无脑的,你最好问他有什么数据统计需求,直接用 SQL 查出来给他就行了。 |
5
XDy0 2020-10-20 08:52:34 +08:00 14
别问,问就让你分页导,条件查询导,百分比导,前后导。。。。。。。
|
6
weizhen199 2020-10-20 08:53:34 +08:00
搞成破真 excel(csv
|
7
xuanbg 2020-10-20 08:53:56 +08:00
有,但我不会去实现这种需求,而是告诉用户可以分批导出。其实一般智商在线的,自己就找到办法了,根本不会来找我。
|
8
CheckTime 2020-10-20 09:00:14 +08:00 2
把英国那个新冠病例丢失的报道给上面看
|
9
pizalo 2020-10-20 09:01:15 +08:00
也不算离谱吧,只不过超 100w 的数据就只能拆分下
|
10
xiangyuecn 2020-10-20 09:02:58 +08:00 4
随便啦,导个 csv 就 ok 啦,这种人会以为 csv 和 xls(x)是同样的东西,反正默认都是显示的 excel 的图标。
|
11
nutting 2020-10-20 09:04:39 +08:00
是在页面下载导出?用的人多吗,考虑带宽,对服务器影响。另外就是导出后到底能不能打开和流畅查看。
|
12
guisheng 2020-10-20 09:10:46 +08:00
先给他生成一个 100w 数据的 excel 发给他 玩玩。
|
13
zyxbcde 2020-10-20 09:14:08 +08:00 via Android
让导就导呗,也不麻烦,100 多万还不至于卡死,最多慢点,wps 好像把 100 万放开了。虽然可能觉得不够高大上,但是不动脑子方面 excel 完胜。
|
14
palmers 2020-10-20 09:17:01 +08:00
100w 数据给他了 机器差一点 打开都需要好久 甚至打不开 所以也就失去了导出查看的意义 如果是导出然后二次加工, 我建议可以使用其他途径比如 直接通过大数据抽数 或者提供查询接口 ; 或者导出多个 excel 或者一个 excel 多个 sheet 页
|
15
clf 2020-10-20 09:18:51 +08:00 1
导出到 csv 吧。导出其实还好,导入的坑比较多。
导出的时候可以考虑做个限制,同时同用户只允许创建一个导出任务,当然不做限制也无所谓~记得做好前端的交互,数据量大的时候下载文件的 API 接口响应时间长,可能会超时。避免用户以为没反应点击按钮多次(点击一次后就限制,刷新后点击提示已经有导出任务在运行) 考虑做进度条的形式,后端最好是做成判断完条件+条件下导出数据不为空就直接返回开始导出的任务 ID,然后在异步任务里实时显示导出进度,完成后前端下载。 |
16
raymanr 2020-10-20 09:20:47 +08:00 2
我来安慰下楼主吧, 我遇到过之前的人给其他部门做的 vba 查询导出 excel , 导出了 100 万行, 90 列, 表格里面充斥着数据透视表, 整个表 1 个多 G
i5 + 16G 电脑需要十多分钟才可以打开, 后来数据量继续增加 终于 vba 的 copyFromRecord 撑不住了, 我试着改成 openpyxl 生成, 通宵都没运行完, 后头直接给他生成了个 csv, 他嫌里面不能包含数据透视表, 有自己琢磨去了 看到还有和你家产品经理差不多的**, 心里有没有好受一点? |
17
raymanr 2020-10-20 09:22:06 +08:00
根据我和这种**打交道的经验, 别和他争, 白痴只会把你拉到和他同样的层次, 然后用丰富的经验打败你
反正公司给钱, 做就行了 |
18
GeruzoniAnsasu 2020-10-20 09:24:56 +08:00 via Android
需求是有取舍的
就算一个需求 10%的情况下没法用,70%的情况下不好用,20%实验室环境能用 但假如甲方客户只需要满足 1%情况下的需求,售后能麻烦自己替客户搞定 80%情况下不好用但能实现的需求,那为什么不做呢 在前场看来这可能是一个一下覆盖了客户 90%场景的好 feature,只有写代码的才会在 10%的瓶颈上心力交瘁。对于想要这个 feature 的客户来说,到达那 10%的瓶颈是后面加钱才考虑的事 |
19
li02 2020-10-20 09:33:52 +08:00
200MB 的 EXCEL,一个 sheet 100w 行
|
20
levelworm 2020-10-20 09:33:56 +08:00 via Android
导 csv 不就行了,太大了让他用 power query 导入,一千万行都行。
|
21
wakzz 2020-10-20 09:37:40 +08:00
这种海量数据,坚决不用 excel,坑太多了。楼主要怼回去,最多搞 csv 导出,海量数据用 excel 简直是想屁吃
|
22
opengps 2020-10-20 09:45:47 +08:00 via Android
只是行数据的话,用 csv,真需要套用公式样式,那就手动把 csv 转 xls
|
23
GeruzoniAnsasu 2020-10-20 09:45:56 +08:00 via Android 1
因为导出 excel 这个需求在做产品的时候实在太常见了,所以想围绕 excel 再说一些以前写代码从来没有观察到的有意思的事
为啥客户非得要把你产品平台的数据导成 excel ? 因为这是他的 kpi 。总有文章强调不要把管理当成工作本身 /管理即工作,但这恰恰是管理即工作广泛性的体现。你的产品不给他做一个展现自己工作成果的功能,他老板怎么知道他到底有没有用到这个花钱买来的玩意?他怎么证明自己做了“管理”这件事情? 好,那为啥非得 excel 不可?——很简单,因为很可能他们有一个 oa,月报就是上传一个 excel 文件,并且其它格式不支持。或者干脆办公电脑是瘦终端 没法查看其它文件也无法与外界交换其它文件。并且拿到这个报告的中层很可能工作就是把各个小弟交上来的 excel 复制粘贴一下变成自己的报告。 好,那,一个文件打开要半小时根本没法看怎么办 ——如果你是领导,你不能让下面人交给你之前先整理过吗? ——如果你是销售,你不也是站在领导立场的吗,你不会建议领导交给小弟处理吗? ——如果你就是小弟,蛤蛤,领导让你加班 12 小时明天上线你有得选吗 所以你看,用这个功能的人根本没资格说它不好用,并且用的人还依赖它给自己生产 kpi,懂我意思不咯 看过这一圈回头想自己写过的那些 bug 就都释然了:bug 是产品的一部分,不服别买,要修加钱 |
24
yujs777 2020-10-20 09:46:46 +08:00
我这边数据部门有一个 50W 的数据导出 excl 的需求,其实这种需求本来就不合理,但是人家给钱给时间,做也就做了。
主要还是注意内存溢出问题。然后响应时间比较长,注意调整一些代理或路由的默认超时时间。尽量用 csv 。比较吃服务器资源可以考虑做个限流。 |
25
ylsc633 2020-10-20 09:50:30 +08:00
单个 excel 差不多 限制 一百万左右
有需求就做呗 只要不影响性能 |
26
zarte 2020-10-20 09:53:08 +08:00
凭啥说不合理?数据量大能 csv 就用这个要不然处理起来麻烦。
|
27
raymanr 2020-10-20 09:55:07 +08:00
@GeruzoniAnsasu 这个问题我倒是了解过,问了让我帮导出 100W*90 数据的人
他要把数据连接到数据透视表发给大领导 为何不能用 csv + powerQuery? 因为大领导用得 mac, 不支持 powerQuery 为何不用拖拽类的 olap 分析工具? 因为数据库是 mysql,对于复杂查询能查几个小时 为何不能换 olap 数据库? 因为小领导觉得 mysql 是天下第一好的数据库,同时很多数据抽取程序和 mysql 耦合太高 所以这 TM,我只能说你们爱咋咋地吧,什么工具什么结果你们都定好了,然后让我摸一下代码就能 xlsx 文件变小,程序速度变快吗? |
28
KennyMcCormick 2020-10-20 09:59:13 +08:00
问就导呗,别人要怎么用不管你的事。
|
29
GeruzoniAnsasu 2020-10-20 10:05:58 +08:00 via Android
|
30
fhsan 2020-10-20 10:10:55 +08:00
合理,我以前经常导
|
31
fhsan 2020-10-20 10:12:31 +08:00
100w 的数据 200m,电脑好点,几分钟打开,他们这些人都习惯了,除非他们先不打开了才不会让你导出
|
32
realpg 2020-10-20 10:13:46 +08:00
100 行数据 硬盘稍微快点 很快就能解决啊
先导出 CSV 这类不需要逻辑的 然后变成 CSV 以后,无论搞啥都不会拖累数据库服务器了 爱转啥格式有啥需求就转啥 甚至可以用 VB6+EXCEL COM 弄个通用的转格式,然后把这个程序和 CSV 丢给跟你提出需求的人让他在自己机器上跑还能看见进度……省的在你机器上跑半天他们还催你 |
33
WytheHuang 2020-10-20 10:16:09 +08:00
很正常的,我司系统必备导出 excel 功能。几乎每个模块都有,复杂 excel 表格也有。
|
34
geektony 2020-10-20 10:22:00 +08:00 2
面对 B 端用户,所有需求都「合理」
|
35
princelai 2020-10-20 10:26:36 +08:00
导 CSV,
CSV 优点:存储速度快,打开速度快,没有行数限制 XLSX 优点:体积比 CSV 小 XLSX 存储和打开可能比 CSV 慢一倍 |
36
chengfeng 2020-10-20 10:27:33 +08:00
你们这算什么,我们现在是导出 100W 已经实现了,下一步是 1000W 哈哈哈哈
|
37
chaosjohn 2020-10-20 10:32:12 +08:00
让给导 excel 数据,我都是反手一个 CSV 过去,想要 xls/xlsx,自己另存为吧
|
38
seanseek 2020-10-20 10:38:49 +08:00
之前导过很多这种,xls 有行数限制,建议 csv,整个后台任务,倒完邮件发他
|
39
Cloutain 2020-10-20 11:10:39 +08:00
绝大部分产品就是屎山堆积,做就完了,管那么多干啥呢,哈哈哈
|
40
galileo1214 2020-10-20 11:30:27 +08:00
我 1600w 的数据都随便导,postgre,直接 csv
|
41
Obrigado0815 2020-10-20 11:38:13 +08:00
我只知道,用浏览器导出会卡死。
|
42
lifeintools 2020-10-20 11:38:23 +08:00
建议 CSV....
|
43
zjuster 2020-10-20 11:57:57 +08:00
CSV 啊。
100M 的 Excel 是什么电脑才能打开的?大部分产品经理配置的电脑是打不开的,还可能丢数据。 我们之前处理这种数据,是用 google 的 openrefine 部署到服务器上,比 Excel CSV 都方便。 |
44
rund11 2020-10-20 12:06:52 +08:00 via Android
导出过 30 万,感觉挺好。只要肯请吃饭,说啥都好办
|
46
Vincentcow 2020-10-20 12:29:00 +08:00
恐怕没有多少办公电脑能跑得动这种表格
现在 Office 要拼配置才能正常运转了吗 |
47
ho121 2020-10-20 12:34:20 +08:00
100W 数据应该不是最终需求,而是用来汇总成各种报表的。
如果不想给 100W 的源数据,那么接到的需求可能是各种报表需求,比 100W 数据还要麻烦 |
48
PanJiaChen 2020-10-20 13:11:13 +08:00
可以将 excel 拆成多个,然后压缩成一个 zip 导出,压缩率还是很高的。单个拆解后的 excel 打开也不会很卡。
|
49
hotsun168 2020-10-20 13:24:23 +08:00
CSV 格式有的场景无法完全替代 Excel,我这边的场景下,导出时很多字段有前导 0,或者超过 15 位的整数,以及时间戳要用 yyyy-MM-dd 的形式标识。
这些字段在 CSV 用 Excel 打开的时候,前导 0 会因为数值类型不显示,很大的整数会被用科学技术法表示,时间戳是斜杠分隔。 业务那边的要求,一般是直接打开不作任何处理的情况下要完整显示。 |
50
Angzk3348 2020-10-20 13:41:53 +08:00
大佬出现了, 这个是 vue-element-admin 的 PanJiaChen 吗 #48
|
51
isnullstring 2020-10-20 13:50:51 +08:00
垃圾需求
|
54
rocksolid 2020-10-20 14:12:36 +08:00
杠一下,csv 图标和 excel 是不一样的 哈哈
|
55
yulitian888 2020-10-20 14:15:17 +08:00
有必要告诉你们领导,有一种叫做 Access 的东西,是 Excel 他们家兄弟。
实际上,不存在单纯为了导出而导出的情况。导出来必然是要用的啊,后续的处理有多少坑,完全取决于你们准备把自己埋得多深。 有这么个新闻,不妨给你们领导感受一下: https://tech.sina.com.cn/d/i/2020-08-11/doc-iivhvpwy0355694.shtml |
58
hack 2020-10-20 14:31:14 +08:00
导出 csv,产品是不是最近报了 python 的班。。。
|
59
Erroad 2020-10-20 14:34:52 +08:00
经常导百万级的表,习惯了,csv 50w 切一个文件,zip 打包下。前导 0 之类的用=""包起来
|
60
Mithril 2020-10-20 14:35:15 +08:00
刚刚做了一个类似的沙雕需求。。。
最重要的就是要保证你这个 100W 的查询不会堵死数据库。。。 反正我是做了个优先级最低的 task,每次导出 1W 数据到 CSV,然后 task sleep 一下。整个系统就这一个 task 的实例,同一时间就只有一个人能用。 反正你愿意导这 100W 你就等着去吧,这 100W 的 CSV 本身就巨大。 |
61
fx777 2020-10-20 14:44:56 +08:00
我是产品,这个产品是个完全不懂技术的吧。
100w 的 Excel,他用的什么电脑,他能打开 流畅运行吗?想啥呢。。 |
62
zoharSoul 2020-10-20 14:52:35 +08:00
根据我和这种**打交道的经验, 别和他争, 白痴只会把你拉到和他同样的层次, 然后用丰富的经验打败你
反正公司给钱, 做就行了 +1 |
63
TimePPT 2020-10-20 14:58:47 +08:00
线上导出上线 10w 行,大于这个数的要申请报备 😂
|
65
miaoxinwei 2020-10-20 15:09:58 +08:00
正常吧
|
66
RuiQ 2020-10-20 15:35:45 +08:00
做过类似的需求 估计没你的十分之一多 Excel 直接就打不开卡死了
|
67
meeop 2020-10-20 15:50:08 +08:00
技术上没问题,数据量再大 10 倍都没问题,我试过打开和导出 100w 行,也就一两 G 内存,打开没问题,值得一提的是,微软比 wps 打开速度和占用内存都节约 1 倍
不过这个需求可能不合理,有巨大数据泄露风险,这种导出如果不是为了倒入到另一个系统,是没有意义的,人又不可能阅读这么多信息 |
68
xuewuchen 2020-10-20 16:25:11 +08:00
这么大当量的数据导到 EXCEL 表干啥用啊。。。。
|
69
co1q84 2020-10-20 16:32:35 +08:00 via Android
有可能你到了后,他数据放 powerbi 分析展示用啊。。。。至于为啥是 excel,有可能他只用过这。
|
70
foxni 2020-10-20 16:34:51 +08:00
第一次碰到这个需求我跟你对反应一样,但是甲方爸爸就是要这么搞,你能怎么办?还得保证页面不卡死!
|
71
keventseng 2020-10-20 16:35:33 +08:00
如果是放到 BI 用为啥要用 execl 导出导入?建议你问清楚产品用途是啥~
|
72
wangsd 2020-10-20 16:50:43 +08:00
你管他呢,不麻烦的话做就完了,有些人你没法理解他的脑回路。
|
73
12tall 2020-10-20 16:51:15 +08:00
实测 Excel 超过 6w 行就。。。。很卡
|
74
raymanr 2020-10-20 16:56:07 +08:00
@12tall 同志你这就很单纯了,一般用到这种表格的都是公司有点地位的,卡?先加几根内存,还卡?小 x, 去京东给我买台最好的电脑,CPU 要 i9 的,内存配个 64G,贵?万把块而已,小钱
|
75
andeluOS 2020-10-20 17:16:57 +08:00
理论上是可行的,就是非常慢,最高曾经导出过 1.06g 的一个机场数据
|
77
raymanr 2020-10-20 17:56:56 +08:00
@user8341 省钱不省钱不知道,我领导就是这种人。。。用最强悍的电脑,跑最垃圾的算法,跑得慢没关系,我们通宵跑,人家训练模型不是也要训练几个星期么?我们 sum 数据 sum 一晚上是很合理的
|
79
yhkang 2020-10-20 18:52:16 +08:00
你们公司有没有 hive 之类的大数据平台,让产品自己去写 SQL 自己导哈哈哈
|
80
Yannis1990 2020-10-20 19:46:30 +08:00
我是产品,找研发导过这种数据。700w 行,20 列,300mb,用 pandas 处理。如果你能提供 mysql 或者 hive 之类的,不需要给我文件。
|
81
xiaochong0302 2020-10-20 20:23:29 +08:00
@XDy0 哭死,还是全部出来吧
|
82
doudou1523102 2020-10-20 21:38:48 +08:00
xls 可以多导出,你可以分 sheet,或者每个导出 10W 条,然后多个文件,打个压缩包给到前台
|
83
NoString 2020-10-20 21:42:07 +08:00
之前有个同事找我要历史所有激活用户的设备 id 好家伙给导了 4.3G..... 然后从服务器开端口让他自己下,他终于意识到自己的局限和**
|
84
zc1249274251 2020-10-20 21:43:55 +08:00
我这还有让导出超 200w 数据到 excel 的需求。。。
|
85
zoomyale 2020-10-20 22:53:58 +08:00
绝大多数情况是因为需求方自己也不知道要干啥,怕领导找他要数据,还有就是平台能力建设不到位,如果有能跑 SQL 的探查工具,就可以丢给他们自己玩了
|
86
Heanes 2020-10-21 09:04:51 +08:00
有可能是财务工作方面的需要,搞个分批异步下载,文件生成完成后通知一下,再出个页面让他自己下载去,限定文件保存期限
|