1

フレックス アプリケーションでデータ テーブルを Excel シートにエクスポートするために as3xls ライブラリを使用しています。私のアプリケーションは、utf-8 文字を含む多言語です。

Excelシートにutf-8文字を含める方法を教えてもらえますか?

Splash の回答は、firefox および chrome でアプリケーションにアクセスする場合には間違いなく機能しますが、 Safariでは機能しません

4

1 に答える 1

1

UTF-8 エンコーディングは、as3xlsの現在の実装ではサポートされていません。このsaveToByteArray関数は、UTF-8 をサポートしないエンコードに BIFF2 (Excel 2.x) ストリームを使用します。

BIFF5 までのすべての Excel ファイル形式には、単純なバイト文字列が含まれています。バイト文字列は、文字列の長さとそれに続く文字配列で構成されます。... 文字配列のエンコーディングは、現在のレコードに依存します。たとえば、CODEPAGE レコードから取得されます。

クイックフィックスは、saveToByteArray()関数をExcelFile.as次のように変更することです。

public function saveToByteArray(codePageID: int, charSet: String):ByteArray 

これらの行を後に追加しますbr.writeTag(bof);

if (codePageID > 0)
{
    var codePage:Record = new Record(Type.CODEPAGE);
    codePage.data.writeShort(codePageID);
    br.writeTag(codePage);
}

cell.data.writeUTFBytes(value);そしてに 変更cell.data.writeMultiByte(value, charSet);

このようにして、必要に応じて文字セットを調整できます。

var xls:ExcelFile = new ExcelFile();
...
// write xls with cyrillic characters
var bytes:ByteArray = xls.saveToByteArray(28595, "iso-8859-5"); 

参考文献:

于 2015-03-20T10:37:15.327 に答える