window.cnblogsConfig = { switchDayNight: { enable: true, nightMode: false, // 强制夜间模式 (版本 >= v2.0.6) auto: { enable: false } }, }

JavaScript 导出csv

1. 修改指定列为中文

可以通过遍历数据对象,将需要转换为中文的字段值替换为中文显示。

2. 删除不需要的列

可以在导出数据之前,删除不需要的列(例如 id 列)。

示例代码

exportAsCSV() {
  // 原始数据
  const data = [
    { id: 1, name: 'John Doe', age: 28, job: 'Engineer' },
    { id: 2, name: 'Jane Smith', age: 22, job: 'Designer' }
  ];

  // 处理数据,转换为中文并去掉 id 列
  const processedData = data.map(item => {
    return {
      姓名: item.name,  // 将 name 列改为中文"姓名"
      年龄: item.age,    // 将 age 列改为中文"年龄"
      职位: item.job    // 将 job 列改为中文"职位"
    };
  });

  // 转换为 CSV 格式
  const csvData = this.convertToCSV(processedData);
  
  // 导出 CSV 文件
  const blob = new Blob([csvData], { type: 'text/csv;charset=utf-8;' });
  const link = document.createElement('a');
  const url = URL.createObjectURL(blob);
  
  link.href = url;
  link.setAttribute('download', 'data.csv');
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

// 将对象数组转换为 CSV 字符串
convertToCSV(objArray: any[]): string {
  const array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
  let str = '';
  
  // 获取并拼接表头
  const header = Object.keys(array[0]).join(',');
  str += header + '\r\n';
  
  // 获取并拼接数据行
  for (let i = 0; i < array.length; i++) {
    let line = '';
    for (const key in array[i]) {
      if (line != '') line += ',';
      line += array[i][key];
    }
    str += line + '\r\n';
  }
  return str;
}
posted @   AccountNull  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示