>  Q&A  >  본문

javascript - 导出为EXCEL文件是重新查数据库还是从前端传数据?

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

ringa_leeringa_lee2712일 전537

모든 응답(5)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-05-16 13:01:19

    1. html 테이블을 xlsx로 직접 내보낼 수 있습니다.

    2. 1을 사용하지 않으면 프런트엔드에서 데이터를 표시하기 전에 획득한 데이터가 캐시되며, 내보낼 때 다른 데이터베이스 작업 없이 백엔드로 다시 보낼 수 있습니다.

    3. 2의 전제는 데이터의 양이 프론트엔드와 백엔드 통신의 허용 범위 내에 있고(예를 들어 50MB를 초과하면 너무 크다), 통신 소비가 데이터 소비를 위해 희생된다는 것입니다. 데이터 베이스.

    회신하다
    0
  • 漂亮男人

    漂亮男人2017-05-16 13:01:19

    사실 js에는 엑셀을 처리할 수 있는 플러그인이 있는데 아직도 백엔드에서 프론트엔드의 데이터를 가져오지 않나요?

    js Excel 플러그인, Baidu에는 exceljs와 같은 다양한 플러그인이 있습니다

    navicat과 같은 일부 mysql 관리 소프트웨어는 데이터베이스를 직접 Excel로 내보낼 수 있습니다. 내보낼 때 PHP를 사용할 필요는 없습니다. 세계 최고의 언어로 모든 것을 얻을 수 있지만 다른 것도 가능하다는 점을 고려해야 합니다. 도 달성

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:01:19

    개인적으로는 데이터를 백그라운드로 다시 가져오는 것을 지원하지 않습니다. 위와 같이 html을 엑셀로 직접 내보낼 수는 있지만, 백그라운드에서 처리할 수도 있지만 html로 데이터를 표시할 때 캐시됩니다. 데이터를 서버로 내보내면 캐시 영역에서 직접 데이터를 읽어서 엑셀로 출력합니다

    회신하다
    0
  • 怪我咯

    怪我咯2017-05-16 13:01:19

    일반적으로 EXCEL로 데이터를 내보내는 것은 백엔드 작업입니다. 여기서 사용자는 데이터를 내보내기 위해 특정 조건을 선택합니다. 백엔드에 시간이 많이 걸리는 경우 비동기 작업을 사용하여 처리할 수 있습니다.

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-16 13:01:19

    데이터를 내보내는 것이 모든 데이터를 내보내는 것을 의미하는지 알고 싶습니다. 아니면 시간 범위를 선택할 수 있나요? 모두 내보내는 경우에는 예약된 작업을 백그라운드에서 실행할 수 있습니다. 예를 들어 밤에 백그라운드로 가서 모든 데이터를 확인하는 등 고객 수가 적은 시간을 선택한 후 내보낼 때 가져오면 됩니다. 이전 기간에도 정기적으로 데이터를 확인합니다.

    회신하다
    0
  • 취소회신하다