Warning: count(): Parameter must be an array or an object that implements Countable in /home/green-rabbit/rabbit-note.com/public_html/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533

Ruby で Word のテーブルを読み取る方法

文書中の特定のテーブルを読み取る方法について紹介します.

背景

Word ファイルにおいて,特定の章に記載されているテーブルの内容を読み取りたいシチュエーションは良くあるかと思います.
例えば次のような表が複数含まれる文書において,「そして」という章に含まれる表のみを読み取る場合です.

Word画面

これを実現するのが次のスクリプトです.

スクリプト

冒頭に掲載した内容の sample.docx ファイルに対して上記のスクリプトを実行すると,以下の出力が得られます.

解説

処理のポイントは,まず get_pos_map で章の範囲を取得する点です.その後,文書に含まれるテーブルの一覧の中から先ほどの範囲に含まれるものを抽出します.