如果js文件中的数据格式为对象数组:
import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';
function exportToExcel(data, fileName) {
// 将数据转换为工作表
const worksheet = XLSX.utils.json_to_sheet(data);
// 创建工作簿并添加工作表
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");
// 生成Excel的配置项
const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'binary' });
// 创建二进制对象并创建url
const blob = new Blob([s2ab(wbout)], { type: 'application/octet-stream' });
const url = URL.createObjectURL(blob);
// 创建a标签模拟点击进行下载
const a = document.createElement('a');
a.href = url;
a.download = fileName + '.xlsx';
document.body.appendChild(a);
a.click();
// 清除对象URL
setTimeout(function() {
URL.revokeObjectURL(url);
document.body.removeChild(a);
}, 0);
}
// 将字符串转换为ArrayBuffer
function s2ab(s) {
const buf = new ArrayBuffer(s.length);
const view = new Uint8Array(buf);
for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
// 使用示例 如果js中的文件为对象数组的格式,将数据赋值给data
const data = [
{ key: 'title', 中文: '主页' },
{ key: 'desc', 中文: '这是一段测试文字' }
];
exportToExcel(data, "users");
如果js文件中的数据格式为对象:
let data = []
function ao() {
let obj = {
Rules_title: '规则',
ThankYou: '感谢您的支持',
Confirm: '知道了'
}
for (let i in obj) {
let objtwo = {
key: i,
chinese: obj[i]
}
data.push(objtwo)
}
exportToExcel(data, "users");
}
// 调用函数,将要导出的数据赋值给obj,进行导出
ao()
import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';
function exportToExcel(data, fileName) {
// 将数据转换为工作表
const worksheet = XLSX.utils.json_to_sheet(data);
// 创建工作簿并添加工作表
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");
// 生成Excel的配置项
const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'binary' });
// 创建二进制对象并创建url
const blob = new Blob([s2ab(wbout)], { type: 'application/octet-stream' });
const url = URL.createObjectURL(blob);
// 创建a标签模拟点击进行下载
const a = document.createElement('a');
a.href = url;
a.download = fileName + '.xlsx';
document.body.appendChild(a);
a.click();
// 清除对象URL
setTimeout(function() {
URL.revokeObjectURL(url);
document.body.removeChild(a);
}, 0);
}
// 将字符串转换为ArrayBuffer
function s2ab(s) {
const buf = new ArrayBuffer(s.length);
const view = new Uint8Array(buf);
for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}