he wei
2024-10-08 96ee251c889b4a7cd65134658ac5c2d4d5fa1798
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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 };