用js-xlsx来实现保存,需要自己获取表格的数据源后,将行中的数字转为字符串,目测ag-grid导出的列类型是数字类型的,而不是字符串导致设置列为数字,太大变科学计数法了。js-xlsx则不会,根据传入的类型设置Excel单元格的对应类型,不会转科学计数法
简单示例如下
<!DOCTYPE html>
<!-- (C) 2013-present SheetJS http://sheetjs.com -->
<!-- vim: set ts=2: -->
<html>
<head>
<title>SheetJS JS-XLSX In-Browser Write Demo</title>
<meta charset="utf-8" />
</head>
<body>
<script type="text/javascript" src="https://unpkg.com/xlsx/dist/shim.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/xlsx/dist/xlsx.full.min.js"></script>
<script>
/* original data */
var filename = "write.xlsx";
var data = [['001', 11111112003, '11111112003'], ['002','11111112003', 11111112003], ["foo", "bar", new Date("2014-02-19T14:30Z"), "0.3"], ["baz", null, "qux"]]
var ws_name = "SheetJS";
if (typeof console !== 'undefined') console.log(new Date());
var wb = XLSX.utils.book_new(), ws = XLSX.utils.aoa_to_sheet(data);
/* add worksheet to workbook */
XLSX.utils.book_append_sheet(wb, ws, ws_name);
/* write workbook */
if (typeof console !== 'undefined') console.log(new Date());
XLSX.writeFile(wb, filename);
if (typeof console !== 'undefined') console.log(new Date());
</script>
</body>
</html>