日々常々

ふつうのプログラマがあたりまえにしたいこと。

POI

Apache POIのバージョンあげたらサイズ跳ね上がったので調べたログ

2023-03-04追記: Apache POI 5.1.0で解消しているのでご安心ください。 Apache POI 5.1.0出てた - 日々常々 Apache POI の久々のメジャーバージョンアップである 5.0.0 が 2021-01-20 に出ました。 テストも通るしいっかーと、雑に更新したらexecutable jar…

Apache POIでテキスト抽出

POI

Apache POI - Text Extraction 使い方も難しくもなさそうだけど、実行環境が手元にないので斜め読みしながら勝手に翻訳。自信なんて無いよ?英語は普通に赤点だったし。過去のことは笑っとけ、笑っとけ。大して改善されてないけど。 Overview ApachePOIは全…

WorkbookFactoryを使う

POI

POIでExcelワークブックを使用する場合、使用するファイルの形式に従ったWorkbookの具象クラスでインスタンス生成する必要があります。例を挙げると、Excel97-2007ではHSSFWorkbookになります。 InputStream stream = new FileInputStream("ファイルへのパス…

POIを使ってみる/「表示形式の設定が失われた可能性があります」

POI

POI(3.6)で作成したファイルをExcelで開いた際に「表示形式の設定が失われた可能性があります」というダイアログが表示されました。 直接の原因は、ファイルに定義されている表示形式の数が多すぎることにあるようです。表示形式はHSSFCellStyle#getDataForm…

POIを使ってみる/Workbook間コピー

POI

Excelの操作にてシートの移動で別のWorkbookを指定するような処理について。POIのバージョンは3.6です。同じWorkbook内でのコピーは比較的単純に出来ます。これに対し、異なるWorkbook間でのコピーはそこそこに手間がかかります。単純に思いつくやり方でやっ…

POIを使ってみる/横幅の設定

POI

横道に逸れてセルというか行の横幅について。POIのバージョンは3.6です。横幅はSheetに設定され、横幅は Sheet#getColumnWidth で取得できます。問題となるのは、この際に取得できる値が何なのかという点。JavaDocには以下のように書かれているので、取得で…

POIを使ってみる/セルのコピー

POI

POIのバージョンは3.6です。 値、書式と出したのでセルおよび行のコピーが出来るようになりました。やり方は想像通り、コピーしたいセルのある対象のシートから、セルの値と書式を取り出して、コピー先のセルに設定していくだけ。とりあえずこの場合、対象の…

POIを使ってみる/値の扱い

POI

書式の前に値だと思うんだけど、順番はきにしないでください。記事がたまったら整理するかも。バージョンは3.6です。値というとvalueなんで、そのままsetValueやgetValueで扱えそうなものなんですが、そうも行きません。ExcelVBAでは、大抵の値はRange.Value…

Excelファイルの全シートから値を引っ張り出す

POI

何となくやってみたかったので。 ネタ的に使えそうなのは、SheetがIterableであり、RowがIterableであること。と言う事で、Sheetにある全てのCellを対象にしたい場合は、拡張for文を2つ重ねればいいのですっと。 import java.io.FileInputStream; import org…

POIを使ってみる/書式の扱い

POI

いろんな基本的なことはすっ飛ばして、書式について書くことにします。バージョンは3.6で。 書式というと、表計算ソフトとしては数値のフォーマットが最重要のはずなのですが、現在日本でExcelが使われる中では、フォーマットより、フォント(サイズや色も含…

POIを使ってみる/概要

POI

JavaからExcelファイルを操作するにはいくつか方法がありますが、POIを使う機会に恵まれたのでつらつらと書いてみようと思います。とりあえず今回は概要レベルで。 現在の最新版は3.6です。日本語ドキュメントは3.0で止まってたりするけど、使い方程度なら差…