有必要导出一个 100W 数据的 Excel - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
hackingwu

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

  •  3
     
  •   hackingwu
    hackingwu Oct 20, 2020 10844 views
    This topic created in 2015 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

    反正公司给钱, 做就行了
    GeruzoniAnsasu
        18
    GeruzoniAnsasu  
       Oct 20, 2020 via Android
    需求是有取舍的
    就算一个需求 10%的情况下没法用,70%的情况下不好用,20%实验室环境能用

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

    在前场看来这可能是一个一下覆盖了客户 90%场景的好 feature,只有写代码的才会在 10%的瓶颈上心力交瘁。对于想要这个 feature 的客户来说,到达那 10%的瓶颈是后面加钱才考虑的事
    li02
        19
    li02  
       Oct 20, 2020
    200MB 的 EXCEL,一个 sheet 100w 行
    levelworm
        20
    levelworm  
       Oct 20, 2020 via Android
    导 csv 不就行了,太大了让他用 power query 导入,一千万行都行。
    wakzz
        21
    wakzz  
       Oct 20, 2020
    这种海量数据,坚决不用 excel,坑太多了。楼主要怼回去,最多搞 csv 导出,海量数据用 excel 简直是想屁吃
    opengps
        22
    opengps  
       Oct 20, 2020 via Android
    只是行数据的话,用 csv,真需要套用公式样式,那就手动把 csv 转 xls
    GeruzoniAnsasu
        23
    GeruzoniAnsasu  
       Oct 20, 2020 via Android   1
    因为导出 excel 这个需求在做产品的时候实在太常见了,所以想围绕 excel 再说一些以前写代码从来没有观察到的有意思的事

    为啥客户非得要把你产品平台的数据导成 excel ?
    因为这是他的 kpi 。总有文章强调不要把管理当成工作本身 /管理即工作,但这恰恰是管理即工作广泛性的体现。你的产品不给他做一个展现自己工作成果的功能,他老板怎么知道他到底有没有用到这个花钱买来的玩意?他怎么证明自己做了“管理”这件事情?

    好,那为啥非得 excel 不可?很简单,因为很可能他们有一个 oa,月报就是上传一个 excel 文件,并且其它格式不支持。或者干脆办公电脑是瘦终端
    没法查看其它文件也无法与外界交换其它文件。并且拿到这个报告的中层很可能工作就是把各个小弟交上来的 excel 复制粘贴一下变成自己的报告。

    好,那,一个文件打开要半小时根本没法看怎么办
    如果你是领导,你不能让下面人交给你之前先整理过吗?
    如果你是销售,你不也是站在领导立场的吗,你不会建议领导交给小弟处理吗?
    如果你就是小弟,蛤蛤,领导让你加班 12 小时明天上线你有得选吗


    所以你看,用这个功能的人根本没资格说它不好用,并且用的人还依赖它给自己生产 kpi,懂我意思不咯



    看过这一圈回头想自己写过的那些 bug 就都释然了:bug 是产品的一部分,不服别买,要修加钱
    yujs777
        24
    yujs777  
       Oct 20, 2020
    我这边数据部门有一个 50W 的数据导出 excl 的需求,其实这种需求本来就不合理,但是人家给钱给时间,做也就做了。

    主要还是注意内存溢出问题。然后响应时间比较长,注意调整一些代理或路由的默认超时时间。尽量用 csv 。比较吃服务器资源可以考虑做个限流。
    ylsc633
        25
    ylsc633  
       Oct 20, 2020
    单个 excel 差不多 限制 一百万左右

    有需求就做呗 只要不影响性能
    zarte
        26
    zarte  
       Oct 20, 2020
    凭啥说不合理?数据量大能 csv 就用这个要不然处理起来麻烦。
    raymanr
        27
    raymanr  
       Oct 20, 2020
    @GeruzoniAnsasu 这个问题我倒是了解过,问了让我帮导出 100W*90 数据的人

    他要把数据连接到数据透视表发给大领导

    为何不能用 csv + powerQuery? 因为大领导用得 mac, 不支持 powerQuery

    为何不用拖拽类的 olap 分析工具? 因为数据库是 mysql,对于复杂查询能查几个小时

    为何不能换 olap 数据库? 因为小领导觉得 mysql 是天下第一好的数据库,同时很多数据抽取程序和 mysql 耦合太高

    所以这 TM,我只能说你们爱咋咋地吧,什么工具什么结果你们都定好了,然后让我摸一下代码就能 xlsx 文件变小,程序速度变快吗?
    KennyMcCormick
        28
    KennyMcCormick  
       Oct 20, 2020
    问就导呗,别人要怎么用不管你的事。
    GeruzoniAnsasu
        29
    GeruzoniAnsasu  
       Oct 20, 2020 via Android
    @raymanr

    hhh 产品:哥们就吃了这碗屎吧,就恶心一下大家都好过,没人会怪你的,瞎整都行,能有就行,吃吧


    屎山都是这么来的
    fhsan
        30
    fhsan  
       Oct 20, 2020
    合理,我以前经常导
    fhsan
        31
    fhsan  
       Oct 20, 2020
    100w 的数据 200m,电脑好点,几分钟打开,他们这些人都习惯了,除非他们先不打开了才不会让你导出
    realpg
        32
    realpg  
    PRO
       Oct 20, 2020
    100 行数据 硬盘稍微快点 很快就能解决啊
    先导出 CSV 这类不需要逻辑的
    然后变成 CSV 以后,无论搞啥都不会拖累数据库服务器了
    爱转啥格式有啥需求就转啥
    甚至可以用 VB6+EXCEL COM 弄个通用的转格式,然后把这个程序和 CSV 丢给跟你提出需求的人让他在自己机器上跑还能看见进度……省的在你机器上跑半天他们还催你
    WytheHuang
        33
    WytheHuang  
       Oct 20, 2020
    很正常的,我司系统必备导出 excel 功能。几乎每个模块都有,复杂 excel 表格也有。
    geektony
        34
    geektony  
       Oct 20, 2020   2
    面对 B 端用户,所有需求都「合理」
    princelai
        35
    princelai  
       Oct 20, 2020
    导 CSV,
    CSV 优点:存储速度快,打开速度快,没有行数限制

    XLSX 优点:体积比 CSV 小

    XLSX 存储和打开可能比 CSV 慢一倍
    chengfeng
        36
    chengfeng  
       Oct 20, 2020
    你们这算什么,我们现在是导出 100W 已经实现了,下一步是 1000W 哈哈哈哈
    chaosjohn
        37
    chaosjohn  
       Oct 20, 2020
    让给导 excel 数据,我都是反手一个 CSV 过去,想要 xls/xlsx,自己另存为吧
    seanseek
        38
    seanseek  
       Oct 20, 2020
    之前导过很多这种,xls 有行数限制,建议 csv,整个后台任务,倒完邮件发他
    Cloutain
        39
    Cloutain  
       Oct 20, 2020
    绝大部分产品就是屎山堆积,做就完了,管那么多干啥呢,哈哈哈
    galileo1214
        40
    galileo1214  
       Oct 20, 2020
    我 1600w 的数据都随便导,postgre,直接 csv
    Obrigado0815
        41
    Obrigado0815  
       Oct 20, 2020
    我只知道,用浏览器导出会卡死。
    lifeintools
        42
    lifeintools  
       Oct 20, 2020
    建议 CSV....
    zjuster
        43
    zjuster  
       Oct 20, 2020
    CSV 啊。
    100M 的 Excel 是什么电脑才能打开的?大部分产品经理配置的电脑是打不开的,还可能丢数据。

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

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

    +1
    TimePPT
        63
    TimePPT  
    PRO
       Oct 20, 2020
    线上导出上线 10w 行,大于这个数的要申请报备
    TimePPT
        64
    TimePPT  
    PRO
       Oct 20, 2020
    @TimePPT 对了,说的是之前呆过的两家公司
    LICOEVE
        65
    LICOEVE  
       Oct 20, 2020
    正常吧
    RuiQ
        66
    RuiQ  
       Oct 20, 2020
    做过类似的需求 估计没你的十分之一多 Excel 直接就打不开卡死了
    meeop
    &nbs;   67
    meeop  
       Oct 20, 2020
    技术上没问题,数据量再大 10 倍都没问题,我试过打开和导出 100w 行,也就一两 G 内存,打开没问题,值得一提的是,微软比 wps 打开速度和占用内存都节约 1 倍

    不过这个需求可能不合理,有巨大数据泄露风险,这种导出如果不是为了倒入到另一个系统,是没有意义的,人又不可能阅读这么多信息
    xuewuchen
        68
    xuewuchen  
       Oct 20, 2020
    这么大当量的数据导到 EXCEL 表干啥用啊。。。。
    co1q84
        69
    co1q84  
       Oct 20, 2020 via Android
    有可能你到了后,他数据放 powerbi 分析展示用啊。。。。至于为啥是 excel,有可能他只用过这。
    foxni
        70
    foxni  
       Oct 20, 2020
    第一次碰到这个需求我跟你对反应一样,但是甲方爸爸就是要这么搞,你能怎么办?还得保证页面不卡死!
    keventseng
        71
    keventseng  
       Oct 20, 2020
    如果是放到 BI 用为啥要用 execl 导出导入?建议你问清楚产品用途是啥~
    wangsd
        72
    wangsd  
       Oct 20, 2020
    你管他呢,不麻烦的话做就完了,有些人你没法理解他的脑回路。
    12tall
        73
    12tall  
       Oct 20, 2020
    实测 Excel 超过 6w 行就。。。。很卡
    raymanr
        74
    raymanr  
       Oct 20, 2020
    @12tall 同志你这就很单纯了,一般用到这种表格的都是公司有点地位的,卡?先加几根内存,还卡?小 x, 去京东给我买台最好的电脑,CPU 要 i9 的,内存配个 64G,贵?万把块而已,小钱
    andeluOS
        75
    andeluOS  
       Oct 20, 2020
    理论上是可行的,就是非常慢,最高曾经导出过 1.06g 的一个机场数据
    9LCRwvU14033RHJo
        76
    9LCRwvU14033RHJo  
       Oct 20, 2020
    @raymanr 这样说来还省钱了?开发复杂的系统更费钱?
    raymanr
        77
    raymanr  
       Oct 20, 2020
    @user8341 省钱不省钱不知道,我领导就是这种人。。。用最强悍的电脑,跑最垃圾的算法,跑得慢没关系,我们通宵跑,人家训练模型不是也要训练几个星期么?我们 sum 数据 sum 一晚上是很合理的
    9LCRwvU14033RHJo
        78
    9LCRwvU14033RHJo  
       Oct 20, 2020
    @raymanr 领导心态真好。
    yhkang
        79
    yhkang  
       Oct 20, 2020
    你们公司有没有 hive 之类的大数据平台,让产品自己去写 SQL 自己导哈哈哈
    Yannis1990
        80
    Yannis1990  
       Oct 20, 2020
    我是产品,找研发导过这种数据。700w 行,20 列,300mb,用 pandas 处理。如果你能提供 mysql 或者 hive 之类的,不需要给我文件。
    xiaochong0302
        81
    xiaochong0302  
       Oct 20, 2020
    @XDy0 哭死,还是全部出来吧
    doudou1523102
        82
    doudou1523102  
       Oct 20, 2020
    xls 可以多导出,你可以分 sheet,或者每个导出 10W 条,然后多个文件,打个压缩包给到前台
    NoString
        83
    NoString  
       Oct 20, 2020
    之前有个同事找我要历史所有激活用户的设备 id 好家伙给导了 4.3G..... 然后从服务器开端口让他自己下,他终于意识到自己的局限和**
    zc1249274251
        84
    zc1249274251  
       Oct 20, 2020
    我这还有让导出超 200w 数据到 excel 的需求。。。
    zoomyale
        85
    zoomyale  
       Oct 20, 2020
    绝大多数情况是因为需求方自己也不知道要干啥,怕领导找他要数据,还有就是平台能力建设不到位,如果有能跑 SQL 的探查工具,就可以丢给他们自己玩了
    Heanes
        86
    Heanes  
       Oct 21, 2020
    有可能是财务工作方面的需要,搞个分批异步下载,文件生成完成后通知一下,再出个页面让他自己下载去,限定文件保存期限
    whywhywhy
        87
    whywhywhy  
       Oct 21, 2020
    @Erroad 感谢,之前一直解决不了这个问题(左边补 0 )。。果然 CSV 一时爽,一直 CSV 一直爽得不要不要的。
    About     Help     Advertise     Blog     API     FAQ     Solana     1038 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 192ms UTC 19:00 PVG 03:00 LAX 12:00 JFK 15:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86