1

我想在 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

请告诉我,我的错误在哪里?

4

1 回答 1

1

我已经用各种 XLS 格式对其进行了测试,但它无法读取任何一种格式。从评论来看,对各种 XLS 格式的支持相当糟糕。

尝试使用不同的 XLS 格式,也许你会找到一个可行的,除此之外我恐怕无法帮助你,在库中修复问题是一项艰巨的任务,我不会用十个-脚杆:http ://www.openoffice.org/sc/excelfileformat.pdf

还可以查看网络上的一些分叉,例如https://github.com/djw/as3xls,他们可能实施了一些修复,让你继续前进。

如果没有什么对你有用,那么我建议寻找另一个库,和/或如果可以的话,甚至使用完全不同的文件格式(如 CSV)。

于 2013-10-30T17:14:39.860 回答