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}`); }
  • 相关阅读:
    assert用法,原理,改编(C++)
    使用临界段实现优化的进程间同步对象原理和实现 (转)
    去除表达式里面多余的()
    为什么C++编译器不能支持对模板的分离式编译
    python试题[转]
    从CSDN的趣味题学Python
    即时战略游戏中如何协调对象移动
    贪心算法精讲
    游戏引擎大全
    I/O 完成端口( Windows核心编程 )
  • 原文地址:https://www.cnblogs.com/rabbit-lin0903/p/14964103.html
Copyright © 2011-2022 走看看