import { saveAs } from "file-saver";
|
import { json2csv } from "json-2-csv";
|
|
// const data = [
|
// { name: "张三", email: "zhangsan@example.com" },
|
// { name: "李四", email: "lisi@example.com" },
|
// ];
|
|
const exportToCSV = (headers, data, name) => {
|
const fields = [];
|
let filterVal = [];
|
let propList = [];
|
headers.map((item, index) => {
|
fields.push(item.label);
|
filterVal.push(item.prop);
|
propList.push([item.label, item.prop]);
|
});
|
// 定义CSV文件的标题
|
// 转换数据为CSV格式
|
const opts = { fields };
|
// const opts = { filterVal };
|
data = formatData(data, propList);
|
let csv = json2csv(data, opts);
|
console.log("csv", "=============", csv);
|
|
// 定义文件名
|
const fileName = name + ".csv";
|
// 将CSV转换为Blob对象
|
const blob = new Blob([csv], { type: "text/csv;charset=utf-8;" });
|
// 使用file-saver保存文件
|
saveAs(blob, fileName);
|
};
|
|
function formatData(data, propList) {
|
return data.map((v) => {
|
let item = {};
|
propList.forEach((vv) => {
|
item[vv[0]] = v[vv[1]];
|
});
|
return item;
|
});
|
}
|
|
export { exportToCSV };
|