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

Rubyからdocxを生成する

投稿日:

 

 

前提

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

変数の仕様~正規表現

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

例えば、こんな文

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

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

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

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

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

scriptular.com/

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

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

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

課題

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

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

次の部分を変更した

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

 

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

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

課題

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

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

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

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

執筆者:

関連記事

ActionCableのサンプルをみてみた

By: Samantha Brough – CC BY 2.0 目次1 ActionCableとは2 rails4での利用3 redisサーバーの準備4 cableサーバーの準備5 チャッ …

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

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

RailsでOAuthを使うには~OmniAuth

By: Freenerd – CC BY 2.0   github.com/intridea/omniauth   目次1 OmniAuthの受け持つ役割2 Rails …

RubyでFaye-websocketを試す

By: Jenny Ondioline – CC BY 2.0 目次1 公式2 インストール3 サーバ側4 クライアント側5 エラー 公式 faye-websocketは、fayeからwe …

no image

Rails3.2で関連するモデルのフォームをあわせて表示~accepts_nested_attributes_for & fields_for

Railsで関連するモデルのフォームを表示するメモ またハマったので手順をメモ 目次1 Model2 View3 Controllerでもどこでも Model [crayon-5b78922a737e …