タブ区切りテキストを読み込み自動レイアウトする

■プログラム説明(ソースコード説明)
 ai_dataフォルダ内にあるdata.txtがタブ区切りテキストです。Fileオブジェクトを作成しテキストを一括して読み込みます。読み込んだ後にsplit()を使って改行コードを指定し行数に分けます。次にsplit()を使ってタブコードを指定し列ごとに分けます。分けたテキストを表示すべきX,Y座標に配置します。背景色を交互に色違いで表示するために変数cFlagの値によって処理します。cFlagがtrueなら緑色、falseなら黄色になります。cFlagの値を反転させるには!(否定演算子)を使いcFlag = !cFlagとするとtrueとfalseが交互に切り替わります。

■ソースコード
x = [100,200,400]; //表示X座標
y = 550; // 表示Y座標
w = 600; // 背景色の横幅
dy = -24; // 改行幅
cFlag = false; // 色処理用
TABCODE = String.fromCharCode(9); // タブコード
CRCODE = String.fromCharCode(13); // 改行コード
docObj = activeDocument;

fileRef = new File ("/ai_data/data.txt");
flag = fileRef.open ("r","","");
if (flag)
{
tmp = fileRef.read();
text = tmp.split(CRCODE);
for (i=0; i<text.length; i++)
{
str = text[i].split(TABCODE);
drawBox(x[0]- 50, y-6);
for (j=0; j<str.length; j++)
{
textObj = docObj.textArtItems.add();
textObj.contents = str[j];
textObj.translate(x[j],y);
}
cFlag = !cFlag;
y += dy;
}
}

// 色を指定
function setColor(r,g,b)
{
var tmpColor = new RGBColor();
var newColor = new Color();
tmpColor.red = r;
tmpColor.green = g;
tmpColor.blue = b;
newColor.rgb = tmpColor;
return newColor;
}

// 背景の四角形を描く
function drawBox(xx,yy)
{
boxColor = setColor(255,255,200); // 黄色
if (cFlag) boxColor = setColor(200,255,200); // 緑色

pObj = docObj.pathItems.rectangle(0,0,w,dy);
pObj.translate(xx,yy);
pObj.filled = true; // 塗りあり
pObj.stroked = false; // 線なし
pObj.fillColor = boxColor; // 塗りの色を指定
}


■使い方
1:エクセルでデータを入力します。
2:タブ区切りテキストで保存します。
3:テキストを読み込み表示するドキュメントをアクティブにします。
4:ファイルメニューからスクリプトを実行します。
5:タブ区切りテキストが表示されます。


■ポイント
 タブ区切りテキストに"(ダブルクオーテーション)が含まれている場合には先頭と末尾の"(ダブルクオーテーション)を削除する処理が必要になります。

■実際のスクリプトをダウンロード(sample.js.zip)