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

Rubyからdocxを生成する

投稿日:

 

 

前提

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

変数の仕様~正規表現

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

例えば、こんな文

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

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

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

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

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

scriptular.com/

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

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

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

課題

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

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

次の部分を変更した

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

 

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

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

課題

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

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

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

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

執筆者:

関連記事

no image

Rails3.2でBackbone.jsとPrivate_pubでToDoアプリをリアルタイム化(できた!)

参考 Rails3.2でリアルタイムメッセージング~Private_pub、Faye Rails3.2とBackbone.jsでToDoアプリを作ってみた~backbone-on-rails &nbs …

RailsでECサイト構築5 プロモーションを試す~spree

  spreeをインストールするとspree-promoというエクステンションが含まれている これを使うといろいろな販売企画をすることができる 管理画面から適当に作成してみる 今回は特定の商 …

Rails3.2のアプリをデプロイ~apache+passenger+postgresql

  環境 ubuntu server 12.04 目次1 postgresql2 apache+passenger3 デプロイ準備 postgresql インストール 参照 Ubuntu s …

Rails3でテストカバレッジを計測する~simplecov,thin

    rspecなどのテストでテストがどの程度カバーしているのかを簡単に計測するsinplecovというgemをいれた 目次1 Gemfile & bundle2 spe …

Rails3.2からMongoDBを使ってアプリをつくってみる~mongoid

MongoDBはとても素直で扱いやすいということがわかってきたので、以前作成した郵便番号・住所の相互検索アプリをまたつくってみた 参照 MongoDBのチュートリアルをこなす KEN_ALL.CSVを …