日本語Gnumeric
スプレッドシートの活用
Gnumericは強力な表計算ツールです。エディタを使うにしてもEmacs、
デスクトップといってもメニューランチャしか使わないLinuxユーザは
こんなに便利なツールを活用できないのは不思議なことです。あちこちのメディア
で「テキストだけで十分、MS Officeは不要」と散々書いていた人々が原因
なのではないかと思います。
Gnumericはこんな用途で活用できます:
- 統計作業が必要な時。Gnumericではグラフを作成することもできます。Gnumericの統計関数プラグインは、カナダの大学で統計を教える教授がメンテナンスしています。Excelのバグも修正していると主張しています。
- 金融計算が必要な時。Gnumericにはオプションのためのプラグインもあります。
- GUIを起動せず、コマンドラインだけで表計算ツールのフォーマットをコンバートしたいとき。ssconvertはExcel,OpenCalc,Lotusなどさまざまなフォーマットに対応しています。
- OpenCalcをいじりたくはないけど、GTK+の知識だけで表計算ツールを拡張したい時。Gnumericは、OpenCalcのフォーマットを出力することもできます。さらにGnumericはC++のOpenOfficeとは異なり、格段にコンパイル時間が短く済みます。
- 他のGNOMEアプリケーションと表計算ツールを連動させたいとき。GNOMEとの親和性は抜群です。
- Perl,Pythonなどのスクリプト言語と連動させたいとき。Gnumericにはスクリプト言語のプラグインがあり、相互に資産を活用できます。現在のGnumericでは、Perlで関数を
記述することができます。将来的にはGnumeric内部のAPIをPerlから呼び出せるように
する予定です。
オープンでフリーなGnumericの活用事例はGoogleで検索してもっと出てきてもいいのではないでしょうか。
0. ふりがなサポート
情報処理振興事業協会(IPA)
のオープンソフトウェア活用基盤整備事業による
委託事業の1つとして、レッドハット社
でGnumericにふりがなサポートを実装しました。
成果物(前期契約分)は以下の通りです。
ふりがなサポートは何の役に立つか??
ふりがながオフィススイートで使えて何の役に立つか? そもそもふりがなサポート
なんて知ってる人さえ、すくないはず。(言い訳も兼ねて)ふりがなサポートの意義を強調しておきます。
一般的に電子ドキュメントがふりがなをサポートすると、以下のメリットがあります。
- 公文書の読解に必要な日本語能力のレベルを下げることができ、日本語経験の浅い外国人や低年齢層でもアクセスできるようになる。
例: 横浜市 港北区 区役所探険隊
注) rubyタグを使うとInternet Explorerでは文字列の上に表示してくれますが、Mozillaだと文字列の横にカッコ付きで表示されます。
ruby.html, IEでの見え方
注)今回のプロジェクトでは、rubyタグ付きHTML出力のサポートはやっていません。
- ふりがなにアルファベットを使うことで、日本語の分らない外国人に読み方を示すことができる。
例: 富士山(FUJISAN), マグロ(maguro)、その他寿司ネタなど。
- 高度な日本語を駆使したい人は、遠慮なく難読漢字を使えるようになる。
- 難読地名や難読人名の読み方も示しておける。
- 豊かな日本語表現を追求したい人は、漢字にどんなふりがなでも振れる。
例: 不在証明(アリバイ) など。
- ドキュメントを読み方の50音順にソートできる。
例: 名簿、住所録など。
注)今回のプロジェクトでは、Gnumericシートでの50音順ソートはやっていません。
- 外国人に高度日本語サポートの難しさを強調できる。
- 再変換を実装できる。ただし再変換の実装方法はふりがな情報の使用以外にもあります。
- ふりがな入りのドキュメントが大量にあると、連文節変換サーバの変換効率向上の自動化にも役立てられるはず。
ふりがなリンク:
1. 禁則処理
gnumeric-1.2.1-1kinsoku1.src.rpm
2. 縦書き・縦中横
縦中横(たてちゅうよこ)とは、縦書きの文字列の中の数字等だけを横書きにして
表示する機能です。
gnumeric-1.2.1-1ftwareki1.src.rpm(和暦機能と共通)
3. 誤字検出
gnumeric-1.2.1-1spellcheck1.src.rpm
4. 誤文法検出
gnumeric-1.2.1-1syntax1.src.rpm
5. 和暦処理
gnumeric-1.2.1-1ftwareki1.src.rpm(縦中横と共通)
6. NUMBERSTRING()関数の実装
NUMBERSTRING()関数はアラビア数字を漢数字に直す関数である。
fn-numberstring-0.2.tar.gz
fn-numberstring-0.1.tar.gz
実行の様子
7. JIS()/ASC()関数
JIS()関数は半角を全角に、ASC()関数は全角を半角にする。
fn-japanese-0.2.tar.gz
fn-japanese-0.1.tar.gz
その他
8. セルごとに日本語入力ON/OFF
9. 日付
などなど
リンク:
jado at flowernet.gr.jp氏による
Gnumericページ
。
iconvとMSでのUnicode<->SJIS変換テーブルの差違によるパッチ等。
誰も教えてくれないGnumeric
ページの冒頭にも書きましたが、Gnumericの情報を日本語で入手することは大変困難です。というかいくらがんばっても見つからないでしょう。なにせ、本当にないのですから。
用語解説
- セル: シートの中で格子に区切られた最小単位。セルオブジェクトはGnmCell。
- シート: セルの表。シートオブジェクトはSheet。
- ワークブック: シートの集合。ワークブックオブジェクトはWorkbook。
Gnumericでは、1つのワークブックは1つのウィンドウに対応する。GUIを含んだワークブックオブジェクトはWorkbookControlGUI。
- GnmValue: Gnumericでの値。整数であることもあり、文字列であることもある。
内部関数
- セル座標(行番号と列番号)とSheetからGnmCellを取得: sheet_cell_fetch()を使う。sheet_cell_get()はそのセル座標にセルがなければNULLを返すが、sheet_cell_fetch()だとセルを新しく作って返す。プロトタイプはsheet.h
- 存在するワークブックすべてにアクセスする: WORKBOOK_FOREACH_* マクロを使う。
Yukihiro Nakai <nakai at gnome.gr.jp>