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

Rubyからdocxを生成する

投稿日:

 

 

前提

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

変数の仕様~正規表現

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

例えば、こんな文

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

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

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

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

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

scriptular.com/

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

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

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

課題

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

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

次の部分を変更した

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

 

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

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

課題

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

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

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

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

執筆者:

関連記事

RailsでHTML5対応のvideoプレイヤーを利用してみる~flowplayer5.0.0

  参考 flowplayer.org/ Flowplayerのサイトからバージョン5.0.0がダウンロードできる flowplayer-gemのバージョンは3.2.4 バージョン5では基本 …

SASS/SCSS+COMPASS+zurui-sass-railsで角丸・グラデ・半透明・テキストシャドウ・ボックスシャドウ

By: Ole Houen – CC BY 2.0 sass-lang.com/ Sassの基礎 (全15回) ドットインストール ネストを覚えた人のためのSassの便利な使い方 comp …

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

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

Railsのテーブル並び替えを実装する

    環境 RailsにTwitter Bootstrapを設定する~twitter-bootstrap-rails 参考 #147 Sortable Lists (revise …

no image

Ubuntu Server 12.04で動画のサムネイルを作成~avconv ffmpeg

  目次1 インストール2 動画の情報3 使えるフォーマットの一覧4 サムネイル画像の作成 インストール

総合的な動画の変換 …