Railsで使えるGem RubyOnRailsで帳票印刷

Rubyからdocxを生成する

投稿日:

 

 

前提

Rubyでdocxをいろいろ分析してみた

変数の仕様~正規表現

いろいろなパターンで試してみた

例えば、こんな文

うまくいけばこんなパターンで抜ける

たまに失敗するとこんなパターンになる

とりあえず、変数の仕様は

  • @@で始まり@@で終わる
  • @@の間はアルファベット大文字・小文字・数字・アンダーバーのみ
  • 正規表現で

下のサイトでいろいろ試すことができる

scriptular.com/

それでこんなクラスを作って(Javaっぽい?)

こんなテンプレートを用意して実行すると

こんなdocxファイルが新しく生成される

課題

1文に同じ変数が2回含まれている場合は?gsubでRegexを使ったらどうやってg指定するのか?

マッチした文字列を全て抜き出して配列へ格納する

次の部分を変更した

  • 最小限マッチにした
  • 置換えを変数名に絞った
  • String.scanを使ってマッチする文字列をすべて抜き出すようにした

 

もちろんテンプレートに色つき文字とか太字とかを設定すれば

完成後のdocxにも適用されています!

課題

右寄せもOK!
テーブルはこのままでも通った!
だけど、均等割付に機能しない。。。均等割付のない世界なんて生きてる意味あるのか

調べてみたら均等割付の最後の@の文字だけ別のランに振り分けられていた

テーブルの方のセルの均等割付はうまく機能した

-Railsで使えるGem, RubyOnRailsで帳票印刷
-

執筆者:

関連記事

WindowsのRubyでxlsxファイルを生成する~axlsx

By: Roman Boed – CC BY 2.0 目次1 axlsxのインストール2 hello axlsx3 サンプル4 参考 axlsxのインストール コマンドラインからインストー …

RailsでECサイト構築7 デプロイ~spree+apache2+passenger

  前提 Rails3.2のアプリをデプロイ~apache+passenger+postgresql Rails3.2+Apache2+Passenger環境でSSLを使ってみる &nbsp …

文字をダブルクリックしてそのままフォーム編集するやつのメモ~in place edit

By: the Italian voice 目次1 Best in place2 Mercury editor3 create.js4 スクラッチで5 X-editable Best in place …

no image

Rails3で動画配信を試用~flowplayer

  最近はYoutubeなど動画配信サイトも充実してきていて知人向けのプライベートな配信も可能なようだ しかし、やっぱりYoutubeにアップするのは抵抗があったり、LAN内だけで配信したい …

no image

RubyからHyper Estraierを使う1~search_do

環境:Ruby 1.9.3 & Rails 3.2.7 参考リンク github.com/grosser/search_do Getting started with acts_as_sear …