javascript - 导出为EXCEL文件是重新查数据库还是从前端传数据?
ringa_lee
ringa_lee 2017-05-16 12:59:19
0
5
575

1.问题背景:前台页面用表格展示了数据,还要支持将数据导出为EXCEL文件。 查询数据库有时很慢(比如时间范围大[2年],sql语句执行时间差不多220s)
一般是导出的数据是重新查询数据库还是可以直接把前台得到的数据传给PHPExcel做处理?
感谢每一个回答者。
PS:sql语句优化尽力了(索引分区做了 多表有的表数据300w条),如果查询一周执行时间1.6s左右,查几年就得几分钟了。

ringa_lee
ringa_lee

ringa_lee

全部回复(5)
Ty80
  1. html 表格可以直接导出为xlsx;

  2. 如果不使用1,那么前端展示数据前,将获取的数据缓存起来,导出时可以发送回后端而不需要再次数据库操作;

  3. 2 的前提是,数据量在前后端通信可以接受的范围内(比如超过50MB 就属于过大了),牺牲通信的消耗换取数据库的消耗。

漂亮男人

实际上js是有可以处理excel的插件的,不过你前台的数据不还是从后台拿到的吗

js的excel插件,百度都有一堆 比如 exceljs

有些mysql管理软件,比如navicat可以直接把数据库导出成为excel,不一定非得用php才能导出,虽然我世界上最好的语言什么都能实现,但是你也要考虑下其他东西也能实现

给我你的怀抱

个人不太支持将数据重新向后台调取,你或者可以向楼上那样直接html到导出excel,当然你可以后台处理,不过你在显示数据在html同时,将数据缓存到服务器,假如输出excel直接从缓存区读出数据再输出excel

刘奇

一般导出数据到EXCEL都是后端操作,这里用户会选择一定的条件进行数据的导出。后端如果比较耗时可以采用异步任务来处理。

小葫芦

题主我想了解一下导出数据是导出所有数据吗?还是可以选择时间范围呢?如果是导出所有的,可以在后台跑定时任务,选择客户量少的时候,比如夜里去后台去一下所有的数据,然后前段导出的时候直接拿就好了,定时任务每天还要定时检查该数据是否为最新的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板