module ExcelTemplateHelper def excel_render(template_file) RubyXL::Parser.parse(template_file).tap do |workbook| workbook.worksheets.each do |worksheet| @worksheet = worksheet @worksheet.each_with_index do |row, row_num| row&.cells&.each do |cell| next if cell.nil? cell_render(cell) end row_height_auto(row_num) end end end end private def content_eval(content) view_context.instance_eval(%("#{conte
はじめに 社内アプリケーションを作成したときに管理部へ提出するようの資料をExcel出力するとき調べたことをまとめました。 Axlsx というライブラリを使用すると、Rails で簡単にExcel出力ができるようになります。 利点なのかわかりませんが、複数のシートを作成することができて便利だなーと感じました。 コマンド // Rails アプリケーション作成 $ rails _5.2.4.2_ new five_min_axlsx_rails $ cd five_min_axlsx_rails // scaffold で Excel モデルを作成 $ rails g scaffold excel title:string body:string $ rails db:migrate RAILS_ENV=development
Excel目検に抵抗 表計算ソフトの歴史 Excelとプログラマの戦いの歴史は長い。Excelというものの本質は表計算ソフトであり、表計算ソフトの元祖は 1979年の VisiCalcというテキストユーザインタフェース (TUI) ベースのツールに遡る。 Screenshot of VisiCalc running on an Apple II computer やりたいこと 何らかのツール(DB, Apache POI, プログラム)で表を出力した際に、その出力に異常がないか調べたい というのは、DBのデータと出力に幅があるのでテストをするにしても起こりうるパターンが多く、結果として出力される例外的なデータの検出が難しいがそれを見つけたい もう少し抽象化して書くと、ある規定された機能についてテストするのではなく異常検知・変化検知を行いたいということ あるデータベースの規定された機能に対し
0. はじめに こんにちは、SWE のやなせです。 暑い日が続きますね。この記事を書いている日の最高気温は34℃だそうです。34℃という数字を見てもすっかり慣れてしまった自分に驚きました。 今回は自分が所属する施工案件管理チームで一番ホットな、2023年7月にリリースした「写真台帳 Excel 出力機能」の概要と、その実装時に直面した技術的課題について紹介します。 1. 施工案件管理と写真台帳作成について 私の所属する施工案件管理チームでは、ANDPAD のコア機能である施工案件管理を開発・保守しています。 工事現場では、施工前から完成後まで多くの写真を撮影し、工事が適切に施工されたことを証明するために、その写真を写真台帳で管理・提出する必要があります。 ANDPAD の案件管理機能には「写真台帳出力機能」があり、ANDPAD に保存した写真をもとに、この写真台帳を Web 上で作成・編集
rubyXLでシートのコピーを行う方法についてまとめましたが、修正前・修正後ともに納得のいくものではありませんでした。どうしてかというと、データと書式のコピーは行われるのですが、セルの幅や高さについてはコピーされないためです。やはりシートのコピーがベストな回答でしょう。 ということでソースコードを読み込んでみたところ、どうやら下記の方法で上手くいくことがわかり、実際に上手く動作しました。 前提条件 以下の前提条件で動作しました。 Ruby 2.1.5 rubyXL 3.3.1 Excel ブックは 2007 形式で新規に作成(2003以前の形式でもシートを全選択し貼り付ければ上手くいきました。) 具体的なシートのコピー 具体的なシートのコピーは以下のようになります。 ワークブックのインスタンスを取得する。 コピー対象のシートのインスタンスを取得する。 シートの属性として シート名、シートI
RailsでExcelを扱うときには weshatheleopard/rubyXL が一番手軽です。弊社でもExcelを扱う場合にはいつもにお世話になっています。 この rubyXL ですが、シートのコピーや削除の仕方がいまいち理解できず、これまでできないものと勘違いしていました。具体的にExcelの利用方法を考えたときには、 テンプレートシートを作成してコピーする 余計なシートを削除する といったような利用方法が多く考えられます。ところが、これらのことができないのかとあきらめて Java での実装を検討していたときにあらためて rubyXL のソースコードを読むことで解決しました。 具体的には以下のようなコードで特定のシートをコピーして名称を変更後、元のシートを削除するということが可能です。 require 'rubyXL' # ワークブックの読込 workbook = RubyXL::
Tutorial Installation Install openpyxl using pip. It is advisable to do this in a Python virtualenv without system packages: Note There is support for the popular lxml library which will be used if it is installed. This is particular useful when creating large files. Warning To be able to include images (jpeg, png, bmp,…) into an openpyxl file, you will also need the “pillow” library that can be
PythonでExcelファイル(BIFF形式、拡張子でいえばxls)を扱う場合には、 pyExcelerator xlrd, xlwt, xlutils Win32OLE(Windows環境のみ) 辺りを使うのが一般的かと思います。他の選択肢は知りません。 今回は開発環境がMac OS X 10.6、デプロイ環境がCentOS 5.4だったので当然Win32OLEの選択肢は除外しました。 pyExceleratorは、罫線やフォントやセルのスタイルなどのデータを細かく指定して書き出せるようですが、読み込み機能が凄くシンプルで、セルの値とその座標のみ抽出できる(罫線やフォントやセルのスタイルなどは読み込めない)ようで、「装飾を施して体裁を整えたExcelファイルを読み込む」→「必要な部分だけ上書きして保存」といういわゆるテンプレート方式のExcelファイルの利用ができません。(まぁ、かなり
import os import numpy as np import openpyxl from openpyxl import Workbook from openpyxl.chart import ScatterChart, Reference, Series dirname = os.path.expanduser("~") filename = "openpyxl_chart.xlsx" xlfile = os.path.join(dirname, "Desktop", filename) #workbook and worksheet wb = Workbook() ws = wb.create_sheet("sheet01", 0) #データ作成 X = np.arange(0, 100, 20) Y1 = X ** 2 len_data = len(X) num_serie
Excel2007から拡張子がxlsx、Office Open XML形式をサポートするようになったこと、xlsxファイルはxmlファイルをzip圧縮したものであることはみなさんご存知だと思います。 しかし、中身のxmlファイルについてはみなさんよく知らないと思いますので、この記事では、その中身について少し読めるようになりみましょう、という内容を書きたいと思います。 中身を読み解くのは簡単です。ECMA376で標準化されているため、立派なリファレンスがあります。現在は4版まで出ており、各版はPart1~Part4まで分けてファイルが存在するため、ECMA-376 4th edition Part 1~ECMA-376 4th edition Part 4を読めば、現在の仕様が分かるということになっています。非常に簡単ですね。 では、リファレンスのpdfを開いて読んでみましょう。 ECMA-
あまり幸福でない開発をしていると、プロジェクトのユビキタスフォーマット()がExcelになっていて、そのうちJenkins上でExcelVBAを動かしたくなります。 サーバ上でExcelを動かすには諸問題があり、できればサーバサイドでExcelを動かさないに越したことはありません。 そこで、たとえばJavaであればPOIなどExcelブックを扱えるライブラリを検討するところですが、POIは下記のような問題もあり、そこまで魅力的ではありません。 数式の計算がむずい(僕はやったことないです) 新規行のセル書式の引き継ぎなどExcelVBAでの動きと多少異なる セルの型の扱いが面倒くさい 実装が面倒くさい VBAが動かせない (反面、POIは処理が高速であるというメリットがあります) こういうこともあり、ExcelVBAマクロがJenkinsで動いてくれたらいいなあと思う人も大勢いると思い、この
サーバに置かれたExcelファイルの更新を定期的に確認するという心躍る楽しい作業が有る。たまにファイルを見に行って、ファイルが更新されているか否か確認するだけの単純作業とは言え、せっかく確認しても更新されているとは限らないし、第一、桜が花開く春の季節にそんな退屈な仕事をするようでは心が寒くなってしまう。そこでJenkinsにファイル監視を代行させることにした。 前提条件 Windows上でJenkinsを稼働させている サーバに置かれたExcelファイルはJenkinsからアクセス可能である(アクセス可能な権限でJenkinsが動作している) ファイル更新の監視 Jenkinsのジョブのトリガーには、ファイル監視を行うFSTriggerプラグインを利用した。単純に更新のタイミングさえ分かれば良いのなら、これだけで良い。 FSTrigger provides polling mechanis
ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も) Excelなんかで、試験仕様書(テスト仕様書)を書くことって、多いと思います。 で、Junitを使う人も多いと思います。 でも、やっぱ、この業界、流派ごとの争いがおおいんでしょーかねー、 このExcelなんかで書く、試験仕様書(テスト仕様書)が、Junitで、どうやって、落とし込むのかっていうことについて、書いてくれてないケースって、多くありませんかねー。 ウィリアムのいたずらの関係したプロジェクトだけが、不運にも、そうなのか? (たしかに、「不幸学鑑定」をやったら、けっこう不幸な人です。で、その不幸の度合いは、ドラゴンボールで言うところのヤムチャ級と出た)。 っていうことで、今日は、その関係について、独断と偏見で書いてみたいと思います。 (つーことで、これと違う意見を言う人も、
ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も) 前のブログで書いた Excelなんかの試験(テスト)仕様書とJunit等のユニットテストの関係(その1) の続きです ■■ 前のブログの内容 「そもそも、試験仕様書に書く項目を考える」では、仕様書に書く内容について書いて、とくに ・テスト内容 ここが、2つないし、3つにわかれる場合もある 3つの場合は、テストの内容、テストを行う(前提)条件、予想される結果 ということを書きました 「Junitなんかのユニットテストの考え方について、考えてみる」では、Junitなんかが、契約による設計(DbC)にもとづいていて、設計内容(=テスト内容)は、事前条件、事後条件、不変条件にわけられるという話をかきました。 それらのことの詳細は、こちらをどうぞ http://www.javaroad.j
いったい何なの どうしてもExcelに大量のデータを入れないといけない状況にあってむしゃくしゃしたので、VBAのApplication.Onkeyメソッド等を利用して「概ね*1」EmacsライクにExcelを操作できる環境を作った。どうしても無理な部分は諦めたがカーソルの移動程度は上手くできたと思う…ので残り誰か作って下さい>< なお、「Mac使えよ」「Xkeymacsっていうのがあってね」「yamyでいいだろ」等々の発言をしたい恵まれた環境にある人は今すぐ帰って下さい! インストール 使いたいExcelファイルの標準モジュールに後述のコードをコピペすればOK。 EmacsModeマクロを起動すれば各種キーバインドが設定されるので、ファイルを開いた時に自動起動したい場合は、ProjectのMicrosoft Excel ObjectのなかのThis Workbookに下記のように記述する。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く