1.引入xlsx
npm i xlsx
2.代码实现
import * as XLSX from 'xlsx';
export const download = (data: Array<string[]>, filename: string, type: string = 'xlsx') => {
const worksheet = XLSX.utils.aoa_to_sheet(data);
const workbook = XLSX.utils.book_new();
const maxColumnLengths = data[0].map((_: string, colIndex: number) =>
data.reduce((max, row) => Math.max(max, row[colIndex].toString().length + 20), 0)
);
const columnProps = maxColumnLengths.map((len: number) => ({
wch: Math.min(len + 10 > 15 ? len + 2 : 15, 100),
}));
worksheet['!cols'] = columnProps;
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
XLSX.writeFile(workbook, `${filename}.${type}`, { compression: true });
};
3.示例
download(
[
['测试1', '测试2'],
['测试1-1', '测试2-1'],
['测试1-2', '测试2-2'],
['测试1-3', '测试2-1'],
['测试1-4', '测试2-4'],
],
'测试'
)
