中文文档 https://github.com/rockboom/SheetJS-docs-zh-CN/
基于文档实现了exce的读取,根据json生成,导出;
运行效果
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/xlsx/0.18.2/xlsx.full.min.js"></script>
<style>
table {
border-collapse: collapse;
}
td {
border: 1px solid gray;
}
</style>
</head>
<body>
<input type="file" onchange="readFile(this)" />
<button onclick="download()">导出</button>
<textarea id="output" cols="150" rows="30" style="width: 100%;"></textarea>
<div id="div"></div>
<script>
var wb; // 工作簿 workbook
var ws; // sheet页 worksheet
// 读取文件
function readFile(obj) {
if (!obj.files) return;
var file = obj.files[0];
var reader = new FileReader();
reader.onload = function (e) {
var data = e.target.result;
// 解析文件
wb = XLSX.read(data, { type: 'binary' });
ws = wb.Sheets[wb.SheetNames[0]];
// 读取成 json
var json = XLSX.utils.sheet_to_json(ws);
document.getElementById("output").innerHTML = JSON.stringify(json, null, '\t');
// 读取成 html
div.innerHTML = XLSX.utils.sheet_to_html(ws);
};
// reader.readAsBinaryString(file);
reader.readAsArrayBuffer(file);
}
// 导出
function download() {
// 创建空的工作簿(没有sheet页)
var wb = XLSX.utils.book_new();
// JSON to sheet
var ws1 = XLSX.utils.json_to_sheet([
{s:1, t:2},
{s:3, t:4},
], {header:["s", "t"]});
// 数组 to sheet
var ws2 = XLSX.utils.aoa_to_sheet([
['我','去'],
[1,2]
]);
// 添加到 wb 里
XLSX.utils.book_append_sheet(wb, ws1, "sheet1");
XLSX.utils.book_append_sheet(wb, ws2, "sheet22");
XLSX.writeFile(wb, 'out.xlsx');
}
</script>
</body>
</html>
导出的excel