1

我正在使用 as3xls 库将数据表导出到我的 flex 应用程序中的 excel 工作表。我的应用程序是多语言的,其中包含 utf-8 字符。

谁能帮助我如何在我的 Excel 表中包含 utf-8 字符?

Splash 的答案无疑在 firefox 和 chrome 中访问应用程序时有效,但在Safari上无效

4

1 回答 1

1

as3xls的当前实现不支持 UTF-8 编码。该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 回答