0

Excelファイルをアップロードし、アップロードされたExcelファイルのデータグリッドの内容を表示したい. すべてがうまくいっています。しかし、loadFromByteArray() 関数を使用して Excel シート形式の byteArray の形式でコンテンツを変換すると、システムは「null オブジェクト参照のプロパティまたはメソッドにアクセスできません」というエラーを表示します。
Excelコンテンツをアップロードするための私のコードは次のとおりです。

protected function browseExcelFile(event:MouseEvent):void  
{   
 excFileRef = new FileReference();  
 excFileRef.addEventListener(Event.SELECT, onSelect);  
 excFileRef.addEventListener(Event.COMPLETE, onComplete); 
 var fileFilter:FileFilter = new FileFilter("Excel (.xls)", "*.xls");  
 excFileRef.browse([fileFilter]);  
} 

private function onSelect(event:Event):void {                               
 excelFileName.text = excFileRef.name;  
 excFileRef.load();  
}   

private function onComplete(event:Event):void {                                 
excelFileName.text = excFileRef.name;  
exceldataInByte = new ByteArray();    
exceldataInByte = event.currentTarget.data;  
if(exceldataInByte.length > 0){  
 var excObj:ExcelFile = new ExcelFile();  
 excObj.loadFromByteArray(exceldataInByte); /* this line give error */  
 var sheet:Sheet = excObj.sheets[0];  
}           
}

このエラーが発生する理由はわかりません。多くのサイトを検索しましたが、Excel をアップロードするのと同じ方法で誰もが投稿しましたが、コードでエラーが発生しました。
このエラーが発生する理由を教えてください。

4

1 に答える 1

0

編集:このプレビュー ( http://activetuts.s3.amazonaws.com/tuts/169_as3xls/1/preview.html ) を見た後、この Excel インポート ツールは、データが 2 列しかないスプレッドシートでのみ機能することに気付きました。データグリッドの列数。2 列のみの .xls ファイルを独自のテスト アプリに読み込もうとした後、期待どおりに動作しています。

私はあなたのエラーを再現したと信じています。

エラーをスローした行は次のとおりです。

excObj.loadFromByteArray(exceldataInByte); /* this line give error */  

エラーは次のとおりです。

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.as3xls.xls::ExcelFile/dimensions()[/...com/as3xls/xls/ExcelFile.as:619]
at Function/http://adobe.com/AS3/2006/builtin::call()
at com.as3xls.xls::ExcelFile/loadFromByteArray()[/...com/as3xls/xls/ExcelFile.as:309]
at stackoverflow/onComplete()[C:\...\src\stackoverflow.mxml:47]

swc でエラーをスローしている行 (619 行目) は次のとおりです

ここ ( https://code.google.com/p/as3xls/source/checkout )からソース コードをワークスペースにチェックアウトし、デバッグして何が壊れているかを確認することをお勧めします。

于 2013-09-03T13:25:20.337 に答える