Vue.jsでExcelエクスポート時の文字化け問題を解決する方法

PHPz
リリース: 2023-03-31 14:01:21
オリジナル
3214 人が閲覧しました

Vue.js は、人気のあるフロントエンド JavaScript フレームワークです。 Vue.js開発において、バイナリファイルを使用してExcelファイルをエクスポートすると、Excelが文字化けする問題が発生することがあります。この記事では、バイナリエンコードの概念と解決策を紹介することで、Vue.jsでExcelをエクスポートする際の文字化けの問題を解決します。

1. バイナリコーディング

バイナリコーディングはコンピュータにおいて非常に重要な概念です。コンピュータ内のデータは 2 進数で保存されており、2 進数は 0 と 1 だけで構成され、それぞれの 2 進数が重みを表します。たとえば、10 進数 123 は 2 進数で 1111011 として表すことができます。この場合、各 2 進数の重みはそれぞれ 1、2、4、8、16、32、および 64 になります。 2 進数を使用して数値を表現するこの方法は、バイナリ エンコーディングと呼ばれます。

2. バイナリ エンコーディングと Excel のコードが文字化けする問題

Vue.js では、バイナリ エンコーディングを使用して Excel ファイルをエクスポートすると、コードが文字化けする問題が発生する可能性があります。具体的な理由は、バイナリ エンコードがパーサーによって UTF-8 エンコードや GBK エンコードなどの他のエンコード形式と誤認される可能性があるためです。 Excel ではデータを正しく表示および解析するために特定のエンコード形式が必要なため、この誤認識により Excel ファイルが文字化けします。

3. 解決策

Vue.js によってエクスポートされた Excel ファイルが文字化けする問題を解決するには、ファイル ストリームを中間メディアとして使用し、エンコーディングを指定することでデータの正確性を確保できます。 Excel ファイルの形式。具体的な解決策をご紹介します。

ステップ 1: 依存関係をインストールする

Vue.js プロジェクトのルート ディレクトリでターミナルを開き、次のコマンドを実行して必要な依存関係をインストールします:

npm install file-saver script-loader -S
ログイン後にコピー

2 番目のステップ: Excel をエクスポートするメソッドをカプセル化します。

Vue.js アプリケーションの適切な場所で、Excel ファイルをエクスポートできるメソッドを定義します。

export function exportExcel(data, name) {
  require.ensure([], () => {
    const { utils, writeFile } = require('xlsx');
    const sheet = utils.json_to_sheet(data);
    const workbook = utils.book_new();
    utils.book_append_sheet(workbook, sheet);
    const wbout = writeFile(workbook, { bookType: 'xlsx', bookSST: true, type: 'binary' });
    saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), `${name}.xlsx`);
  });
}

function s2ab(s) {
  const buf = new ArrayBuffer(s.length);
  const view = new Uint8Array(buf);
  for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
  return buf;
}
ログイン後にコピー

上記のコードは、## という名前のメソッドをカプセル化します。 #exportExcel 関数。この関数はデータとファイル名の 2 つのパラメーターを受け取ります。 Excel をエクスポートするこのメソッドは xlsx.js に基づいて構築されているため、そのメソッドを使用する前に xlsx.js をインストールする必要があります。

ステップ 3: Excel エクスポート メソッドを呼び出す

特定のビジネス コードでは、カプセル化された Excel エクスポート メソッドを呼び出すだけです。たとえば、次のコードは配列を Excel ファイルにエクスポートする方法を示しています:

import { exportExcel } from '@/utils/exportExcel';

export default {
  data() {
    return {
      tableData: [
        { name: '张三', age: 20 },
        { name: '李四', age: 21 },
        { name: '王五', age: 22 },
        { name: '赵六', age: 23 },
      ],
    };
  },
  methods: {
    export() {
      exportExcel(this.tableData, '数据表');
    },
  },
};
ログイン後にコピー
4. 概要

Vue.js は人気のあるフロントエンド JavaScript フレームワークですが、バイナリ ファイルを使用する場合Excelにエクスポートする ファイルを使用すると文字化けが発生しやすくなります。この問題を解決するには、ファイル ストリームを中間メディアとして使用し、指定された Excel ファイル エンコード形式を使用してデータの正確性を確保します。上記の手順により、Vue.js でエクスポートされた Excel ファイルが文字化けする問題を簡単に解決できます。

以上がVue.jsでExcelエクスポート時の文字化け問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート