記錄一下前端html使用excel 導(dǎo)出excel 學(xué)習(xí)的demo
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>html exceljs 數(shù)據(jù)表格導(dǎo)出</title>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.26.0/polyfill.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/exceljs/4.2.1/exceljs.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js"></script>
</head>
<body>
<button onclick="exportExcel()">導(dǎo)出excel</button>
<script>
function exportExcel(){
// 創(chuàng)建一個workbook
var workbook = new ExcelJS.Workbook();
// workbook 添加一個 123 標(biāo)簽的sheet
var worksheet = workbook.addWorksheet("123");
// 設(shè)置sheet數(shù)據(jù)中的列名
worksheet.columns = [{
header: 'id',
key: 'id'
},
{
header: '姓名',
key: 'name'
},
{
header: '電話',
key: 'phone'
}
];
// 設(shè)置數(shù)據(jù)(可以通過后臺獲取、獲取已經(jīng)存在的數(shù)據(jù))
var data = [{
id: 1,
name: '張三',
phone: '1234567890'
},
{
id: 2,
name: '李四',
phone: '123'
}];
// 開始添加數(shù)據(jù)
/* for (let i in data) {
worksheet.addRow(data[i]).commit();
} */
worksheet.addRows(data);
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
// 下載excel
workbook.xlsx.writeBuffer().then((data) => {
const blob = new Blob([data], {
type: EXCEL_TYPE
});
saveAs(blob, 'download.xlsx');
});
}
</script>
</body>
</html>

image.png