Heim  >  Fragen und Antworten  >  Hauptteil

python - Wie kann das Problem gelöst werden, wenn der Browser beim Excel-Export mit mehr als 10.000 Elementen halb hängen bleibt?

Geschäftsanforderungen erfordern manchmal den Export von Zehntausenden von Elementen.
Kann ich Python zur Verarbeitung verwenden?
Was ist, wenn ich Python zur Verarbeitung verwende?

習慣沉默習慣沉默2657 Tage vor1917

Antworte allen(13)Ich werde antworten

  • 伊谢尔伦

    伊谢尔伦2017-06-14 10:51:44

    一万多条不是很多. 可以使用 PHPExcel 这个第三方库. 或者直接导出 csv , 函数: fputcsv .

    Antwort
    0
  • 代言

    代言2017-06-14 10:51:44

    导出的话,直接导成CVS模式就好了.

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-06-14 10:51:44

    可以不一次性导出。分批导出

    Antwort
    0
  • 三叔

    三叔2017-06-14 10:51:44

    像这种耗时的服务器任务不应该设计成浏览器->同步->服务器
    应该是异步任务的形式:

    1. 浏览器:我要一个Excel,你先帮我生成

    2. 服务器:好的,任务已开始

    3. 浏览器:我来刷新一下看看(可以用长连接替代),好像完成了,你把URL(URL可以体现在任务中,无需再获取)给我,我要下载了

    4. 服务器:http://domain.com/test.xlsx

    5. 浏览器:开始下载

    Antwort
    0
  • 学习ing

    学习ing2017-06-14 10:51:44

    10000多条就不行了?文件是有多大啊

    Antwort
    0
  • 三叔

    三叔2017-06-14 10:51:44

    你可以把生成做成分段式……1000条1000条写。
    另外php超时的话可以改下set_time_limit()

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-14 10:51:44

    异步,所有导出操作都应该做成异步

    Antwort
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-14 10:51:44

    写成分页 比如1000条刷新一次

    Antwort
    0
  • 学习ing

    学习ing2017-06-14 10:51:44

    用脚本去跑, php -f export.php

    Antwort
    0
  • 为情所困

    为情所困2017-06-14 10:51:44

    使用异步或者多进程,浏览器提交任务,提示任务已经在处理,后台多进程脚本慢慢处理,出来完成给浏览器推个消息提示用户导出操作已经完成,可以下载了。
    浏览器推送消息:http://www.workerman.net/web-...
    多进程框架:http://doc3.workerman.net/ins...

    Antwort
    0
  • StornierenAntwort