<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>JS-XLSX Demo</title> <script type="text/javascript" src='./libs/xlsx.full.min.js'></script> </head> <body> <table id="data-table" border="1" width="50%"> <tbody> <tr> <td>编号</td> <td>名称</td> <td>价格</td> <td>日期</td> </tr> <tr> <td>1</td> <td>《Java架构师》</td> <td>¥78.5</td> <td>2018-10-11</td> </tr> <tr> <td>2</td> <td>《Python入门到精通》</td> <td>¥65.3</td> <td>2019-03-22</td> </tr> <tr> <td>3</td> <td>《JavaScript高级教程》</td> <td>¥89.4</td> <td>2017-04-13</td> </tr> </tbody> </table> <p> 将上面表格的内容导出到Excel文件 </p > <p> <button onclick="exportExcel()">导出Excel</button> </p > <script type="text/javascript"> function exportExcel() { // 获取表格的Dom对象 var elt = document.getElementById('data-table'); // 创建Excel工作簿,即一个Excel文件 var wb = XLSX.utils.table_to_book(elt, { sheet: "SheetJS" // 工作表格名称 }); // 导出工作表 return XLSX.writeFile(wb, 'SheetJSTableExport.xlsx'); } function exportExcel2() { // 获取表格的Dom对象 var elt1 = document.getElementById('xgszjcb-tb'); var elt2 = document.getElementById('xqzjcbxtscb-tb'); var elt3 = document.getElementById('xqzjcbdrb-tb'); var elt4 = document.getElementById('xgszjsr-tb'); // 创建虚拟workbook var wb = XLSX.utils.book_new(); // 把数据生成sheet var sheet1 = XLSX.utils.table_to_sheet(elt1); var sheet2 = XLSX.utils.table_to_sheet(elt2); var sheet3 = XLSX.utils.table_to_sheet(elt3); var sheet4 = XLSX.utils.table_to_sheet(elt4); // 把sheet添加到workbook里 XLSX.utils.book_append_sheet(wb,sheet1,"县区直接成本-合计"); XLSX.utils.book_append_sheet(wb,sheet2,"县区直接成本-系统生成"); XLSX.utils.book_append_sheet(wb,sheet3,"县区直接成本-导入"); XLSX.utils.book_append_sheet(wb,sheet4,"县区直接收入-合计"); // 导出工作表 return XLSX.writeFile(wb, '县区公司.xlsx'); } </script> </body> </html>
1、以上是js-xlsx的使用案例,纯前端导出excel。
2、导出时,会把52.36%导出成0.5236,加入以前代码,才不会把%计算进去。
var sheet = XLSX.utils.table_to_sheet(elt,{raw: true});就不会把字符串当做数字处理 var wb = XLSX.utils.table_to_book(elt,{raw: true});就不会把字符串当做数字处理
3、用到的包