actionscriptでexcel読み込み

2014年9月14日日曜日

コンピュータ

Actionscriptでエクセルファイルを読み込むならas3xlsがあるとネットで見たんですが、どうも日本語が化けるらしい。で、もう少し調べてたら対策考えてくれてる人がいたのでほぼその手順を踏まえてやってみる。
まだ書きかけ(2014/9/24)

参考ページ
一陣の神風が舞う
http://ciablo.blog70.fc2.com/blog-entry-127.html

手順1:
Jcode取得
http://web2memo.blog120.fc2.com/blog-entry-221.html
上記ページでZIPファイルを落とすと、ソースが入ってますから、そのソースを自分のプロジェクトに取り込みます。

手順2:
as3xlsのソースコードを取得します。Googleコードから取得しますがsvnなのでMacでなら、svnXがいい感じです。

https://code.google.com/p/svnx/

svnxはバイナリ(dmg)があるのでそれを実行すればインストールできます。
インストール後はRepositoriesにas3xlsのリポジトリ追加
 http://as3xls.googlecode.com/svn/trunk/

設定後、リポジトリダブクリックでリポジトリ開けるのでExportすればソースが落とせます。

ダウンロード後、自分のプロジェクトに取り込んでおきます。

手順3:
as3xlsのソース変更
com.as3xls.xls内、ExcelFile.asを下記な感じで修正

追加 import文
import com.web2memo.text.Jcode;


追加 230行付近のfor文の前
var jcode:Jcode = Jcode.getInstance("WIN");


修正 250行付近のelse if(String(value).length > 0) 文
cell.type = Type.LABEL;
cell.data.writeByte(0);
cell.data.writeByte(0);
cell.data.writeByte(0);

/* 20140924  日本語対応  */
var labelData:ByteArray = jcode.UTF8toSJIS(value);
var len:uint = String(value).length;
/* 20140924変更   */
cell.data.writeByte(len);
cell.data.writeBytes(labelData);
// cell.data.writeUTFBytes(value);



手順4:
手順3まででas3xlsは日本語化けが治っているはず。
まだ未確認