フレックス アプリケーションでデータ テーブルを Excel シートにエクスポートするために as3xls ライブラリを使用しています。私のアプリケーションは、utf-8 文字を含む多言語です。
Excelシートにutf-8文字を含める方法を教えてもらえますか?
Splash の回答は、firefox および chrome でアプリケーションにアクセスする場合には間違いなく機能しますが、 Safariでは機能しません。
フレックス アプリケーションでデータ テーブルを Excel シートにエクスポートするために as3xls ライブラリを使用しています。私のアプリケーションは、utf-8 文字を含む多言語です。
Excelシートにutf-8文字を含める方法を教えてもらえますか?
Splash の回答は、firefox および chrome でアプリケーションにアクセスする場合には間違いなく機能しますが、 Safariでは機能しません。
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");
参考文献: