在Web开发中,常会遇到数据导出的需求。这篇主要介绍如何快速将数据导出,并保存为Excel文件。
1. 前端
Web开发中,格式化数据常以table的形式展示。下面是一个人员薪酬信息表,以导出这份数据为例。
姓名 | 职位 | 年龄 | 薪水 |
---|---|---|---|
Tiger NixonTiger Nixon | System Architect | 61 | $320,800 |
Garrett Winters | Accountant | 63 | $170,750 |
Ashton Cox | Junior Technical Author | 66 | $86,000 |
Cedric Kelly | Senior Javascript Developer | 22 | $433,060 |
Herrod Chandler | Sales Assistant | 59 | $327,900 |
1.1 tableExport
tableExport是一个表格导出Jquery插件,支持导出格式:JSON、XML、PNG、CSV、TXT、SQL、MS-Word、Ms-Excel、Ms-Powerpoint、PDF。
需要注意的是,如果表头有中文,原项目中的 jquery.base64.js,会报错:Uncaught INVALID_CHARACTER_ERR
: DOM Exception 5 VM2832 jquery.base64.js:136,需要更新。推荐 jQuery 官网插件,前往。tableExport原生项目对中文数据导出并不友好。
- 引入js
|
|
- 导出PNG
|
|
- 导出PDF
|
|
- 使用方法
直接调用插件的tableExport方法,设置导出类型即可。建议escape设置为true,否则中文会有乱码。
|
|
1.2 kendoGrid
Kendo UI 是一个用于快速开发 HTML5 UI 的强大框架。基于 HTML5、CSS3和JavaScript标准。Kendo UI 包含了开发现代 JavaScript 开发所需要的所有一切,包括:强大的数据源,通用的拖拉(Drag-and-Drop)功能,模板,和UI控件。kendoGrid 支持将表格数据导出为 Excel 文件,只需简单配置一下即可。
|
|
1.3 DataTables
kendoGrid是一款商业的前端表格工具,使用上收到一定限制。如果项目组允许使用DataTables这款表格工具,那么也不错。DataTabels同样也提供丰富的工具,用于数据的导出。
需要注意的是,如果表格数据中存在特殊字符,比如$,需要customizeData函数特殊处理一下,否则导出数据会出现乱码。
|
|
2. 后端
当数据量很大时,后台分页,前端就无法导出完整的数据。这时,可以采用后端数据导出,这里以Django为例,直接给前端返回excel文件。
|
|