2008/07/03

表関連のスクリプト

まず、列幅の自動調整。セルにはcolumnsからアクセスして、各セルの文字列のバイト数を求めて、最大値×フォントサイズ+マージンを列幅とする(セル内で改行されてる場合もあるので、paragraphオブジェクトのcontentsで文字列を取得する必要がある)。マージンはプロンプトウィンドウを表示させて、都度入力。
バイト数を求めるには、
function countByte(str)
{
return str.replace(/[^\x20-\xFF]/g, "##").length;
}
みたいな関数作って対処。結構これは、使い勝手がいい。今組んでる本が、各章につき30ぐらいの表があるんで、いちいち手作業でやってたら腱鞘炎起こします・・・。

次にセルの結合作業支援スクリプト。セルを複数選択して、列ごとに一気にまとめたい時用に。選択状態のセルのインデックスは行方向に増える様子。

そろそろ、ライブラリ化も考えて、関数とか変数の命名法を統一しておこう。

で来週末までには3冊分ぐらい組まなきゃいけないのか・・・。スクリプト開発ばっかりやってるわけにもいかなくなってきた。

0 件のコメント: