0

Googleドキュメントからエクスポートされた.xlsxファイルを解析しようとしています。現在、オンラインでアクセスしようとはしていません。手動でダウンロードして、アプリケーション内にコピーしています。

オンラインで提供されているチュートリアルを読みました。これが現在のコードです。

 var contentBA:ByteArray = new ByteArray ();
 var fileToLoad:File = File.applicationDirectory.resolvePath("textLabels.xlsx");        
 var stream:FileStream = new FileStream();
 stream.open(fileToLoad, FileMode.READ);
 stream.readBytes (contentBA, 0, contentBA.length);
 var xls:ExcelFile = new ExcelFile();
 xls.loadFromByteArray(contentBA); 
 trace ("N SHEETS ", xls.sheets.length);

しかし、シートの数は常に0です。ファイルを変更して、これまでで最も単純なExcelをロードしようとしましたが、0と表示され続けます。

「.xlsx」拡張子の問題ですか?私は何かが足りないのですか?

4

2 に答える 2

1

AS3XLSは、古いファイル形式のBIFFOffice97スタイルのドキュメント用に作成されました。AdvancedDataGridでの作業用にXLSXエクスポーターを作成しましたが、これは独自の作業であるため、残念ながらコードを共有できません。しかし、私はあなたにいくつかの方向性を与えることができます。BIFF形式は、セルや式の形式などをエンコードするために特別なコードを使用していました。バイナリ形式は、ファイルサイズを縮小することを目的としていたようです(おそらく難読化の形式として)。XLSXは、代わりに、よりオープンなXMLアプローチを採用しており、BIFFファイルの作成は複雑であり、Microsoftがその仕様を公開する前に、Open Officeチームによってリバースエンジニアリングされました。新しいXML形式は、かなりよく文書化されています。拡張子がxで終わる新しいOfficeファイルはすべてアーカイブです(zipファイルと同じように シートを定義する一連のXMLファイルを含む任意のアーカイブツールで開くことができます。私は基本的に何も入っていないサンプルシートを取り(開いたExcelは新しいブックを保存しました)、それを分解して、各XMLファイルに対応するAS3クラスを作成し、それぞれがgetXMLString( )次に、すべてのオブジェクトを作成するラッパーを作成し、コンテナーパターン/トラバーサルを使用して必要なすべてのXMLファイルを作成し、nochumpAS3zipライブラリを使用してパッケージ化しました。

xlsxまたはdocxまたはwhateverxファイルを検査するための便利なツールはここにあります: http ://www.microsoft.com/en-us/download/details.aspx?id = 5124

ここでMacについて話し合っている場合:http: //openxmldeveloper.org/discussions/development_tools/f/27/p/1494/7453.aspx

一般的に、上記のサイトは役に立ちました http://openxmldeveloper.org/

(最小限の)例を示すドキュメント http://www.ecma-international.org/news/TC45_current_work/Office%20Open%20XML%20Part%203%20-%20Primer.pdf

NoChumpのAS3Zipライブラリ http://nochump.com/blog/archives/15

基本的に、テーブルやセルスパニングなどのより高度な機能については、単純なExcelファイルでプログラムで作成できるようにしたかった変更を試み、上記のリンク先の最初のツールを使用して、新しい機能なしで別の機能と比較し、適切な方法で変更を実装しました。 AS3クラス(変更されたXMLファイルに対応するクラス)。

クラスの構成がしっかりするまでに約2週間かかりましたが、それは絶対に達成可能です。

于 2012-10-24T17:41:08.897 に答える
0

ExcelFileはカスタムライブラリのクラスであり、Excel2002-2003をサポートしていると書かれています。どのバージョンのExcelを使用していますか?

于 2012-10-24T16:35:19.020 に答える