zoukankan      html  css  js  c++  java
  • 设置charset=shift-jis

    项目使用了vue admin element ui中封装好的下载csv文件的方法,直接修改new Blob怎么都不好用。

    后来采用了拼数据上去,后更改charset.

    1、安装encoding-japanese

    2、修改vue admin element ui中的export2Excel.js 文件中的方法

    export function export_json_to_excel({
      multiHeader = [],
      header,
      data,
      filename,
      merges = [],
      autoWidth = true,
      bookType = 'csv',
    } = {}, wsName) {
      const csvFormat = (col => `"${col}"`);
        
     // 动态拼接数据,包括多级表头的情况
     
    // 多级表头
    let multiHeaderStr
    = ""; if (multiHeader.length > 0) { for (let i = 0; i < multiHeader.length; i++) { multiHeaderStr += multiHeader[i].map(csvFormat).join(",") + (i == multiHeader.length - 1 ? "" : " "); } }

    // 具体内容 let contentStr
    = ""; for (let i = 0; i < data.length; i++) { contentStr += data[i].map(csvFormat).join(",") + " "; }

     // 不是多级表头 let headerStr
    = ""; headerStr += header.map(csvFormat).join(","); let csvData; if (multiHeader.length > 0) { csvData = [ multiHeaderStr, headerStr, contentStr ].join(' '); } else { csvData = [ headerStr, contentStr ].join(' '); } const unicodeList = []; for (let i = 0; i < csvData.length; i += 1) { unicodeList.push(csvData.charCodeAt(i)); } // 変換処理の実施 const shiftJisCodeList = Encoding.convert(unicodeList, 'sjis', 'unicode'); const uInt8List = new Uint8Array(shiftJisCodeList); saveAs(new Blob([uInt8List], { type: 'text/csv' }), `${filename}.${bookType}`); }
  • 相关阅读:
    网络协议 7
    网络协议 6
    PHP 扩展管理
    网络协议 5
    什么是DevOps?
    C# Web API Modify Post Data Size Limit
    Redis 数据变化通知服务实践
    .net 相关性能计数器丢失问题解决方案
    为什么要DevOps?
    分布式服务发现的几种模型
  • 原文地址:https://www.cnblogs.com/rabbit-lin0903/p/14964103.html
Copyright © 2011-2022 走看看