我想借助as3xls从xls文件中获取数据。
private var file:FileReference = new FileReference();
private var sheet:Sheet;
private var loadedFile:ByteArray;
private function sendLogistImport():void {
file.addEventListener(Event.SELECT, onFileSelect);
file.browse();
file.addEventListener(Event.COMPLETE,
function (e:Event):void {
loadedFile = e.currentTarget.data as ByteArray;
var excelFile:ExcelFile = new ExcelFile();
excelFile.loadFromByteArray(loadedFile);
sheet = excelFile.sheets[0];
Alert.show(sheet.getCell(1,0).value);
}
);
}
private function onFileSelect(e:Event):void {
file.load();
}
但是我在 excelFile.loadFromByteArray(loadedFile); :
中收到此错误Error: Error #2030: End of file was encountered.
at flash.utils::ByteArray/readUTFBytes()
at com.as3xls.xls::ExcelFile/boundsheet()[/Users/manuelwudka-robles/Documents/Flex Builder 3/as3xls/com/as3xls/xls/ExcelFile.as:633]
at Function/http://adobe.com/AS3/2006/builtin::call()
at com.as3xls.xls::ExcelFile/loadFromByteArray()[/Users/manuelwudka-robles/Documents/Flex Builder 3/as3xls/com/as3xls/xls/ExcelFile.as:309]
at Function/<anonymous>()[D:\logist.as:244]
这是我的xls文件的截图:
这是我的xls文件: http://www.filedropper.com/template_1
请告诉我,我的错误在哪里?
答案 0 :(得分:1)
我用各种XLS格式测试过它,它无法读取任何格式。从the comments来看,对各种XLS格式的支持相当糟糕。
尝试使用不同的XLS格式,也许你找到一个有效的,除此之外我恐怕无法帮助你,修复库中的问题是一项可怕的任务,我不会用它来触摸它一个10英尺的杆子:http://www.openoffice.org/sc/excelfileformat.pdf
同时查看网络上的一些分支,例如https://github.com/djw/as3xls,它们可能会实施一些修复程序,让您前进。
如果没有什么对您有用,那么我建议寻找另一个库,和/或甚至使用完全不同的文件格式(如CSV),如果这是一个选项。