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

Rubyからdocxを生成する

投稿日:

 

 

前提

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

変数の仕様~正規表現

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

例えば、こんな文

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

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

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

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

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

scriptular.com/

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

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

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

課題

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

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

次の部分を変更した

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

 

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

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

課題

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

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

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

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

執筆者:

関連記事

FullCalendarのagendaViewでselectの場所がずれる問題

  By: Ben Piddington 前回 Rails3.2でGoogle Calendarライクなカレンダーを使う〜fullcalendar-rails   gemは最新の1 …

Rails4でdocxを読み書き〜gem docx

By: Jesús Corrius – CC BY 2.0 github.com/chrahunt/docx rubyでもいいんだけど、rubygemでのバージョンが最新でなかったのでRa …

Rails4とD3.jsでローソク足グラフを描く〜Rails準備編

By: Manuel Calavera – CC BY 2.0 前回 Rails4で複雑な検索〜Ransack こちらのサンプルを使用させてもらいました。 datawarehouse.we …

backbone-railsのscaffoldで生成されるコードでルーティングとCRUDの処理をどうやってるのか読んでみた

By: asobi tsuchiya   目次1 はじめに2 サンプルの準備3 初期化4 ルーター5 READ6 CREATE7 UPDATE8 DELETE はじめに backbone-r …

Rails3.2のproduction環境で動画再生~flowplayer+carrierwave+nginx+unicorn

  By: Creative Tools – CC BY 2.0 目次1 前提2 unicornの設定3 nginxのインストール4 nginxの設定5 アセット関係6  ストリ …