サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
shin-kawara.seesaa.net
前回はExcelのセルが日付タイプの際に表示されている内容で取得することが困難なことを説明しました。 今回は具体的なコーディングを行います。 方針をおさらいすると下記のとおりになります。 1.java.text.DateFormatをもつenum CellDateFormatを定義 2.CellDateFormatに変換を行いたいフォーマットを登録 3.日付の判定にDateUtil#isCellDateFormatted()を使用し、 falseだった場合でも、CellDateFormatに存在する場合にtrueとする 4.CellDateFormatから返されるjava.text.DateFormatで文字列に変換する それでは順番に説明していきます。 1.java.text.DateFormatをもつenum CellDateFormatを定義 2.CellDateFormatに変換を
前回はPOIで値を取得することが一筋縄ではいかないこと、数値タイプについての解決策(妥協?)をご紹介しました。 今回は日付についての解決策をご紹介します。 POIで日付タイプであると判定する場合、 1.セルタイプが数値であること 2.書式が日付型であること を確認して値の取得を行います。 一般的には switch(cell.getCellType()) { ・・・ case Cell.CELL_TYPE_NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { // 日付型として値を取得 return cell.getDateCellValue(); } // それ以外は数値のセルとして値を取得 ・・・ break; case ・・・ のようになると思います。 前回同様に「表示されているとおりの内容をString型で取得」するには、セルのフォーマ
一般的に紹介されている取得方法では、(私の)意図したとおりに取得できなかったので、POIでセルの値を見た目どおりに取得する方法について数回に分けて記載します。 どんな場合に問題になるのでしょうか? セルの値を取得する際に、セルのタイプを把握して適したメソッドを使用しないと例外が発生してしまいます。 このあたりはあちこちのページで紹介されているので困惑することはありません。 しかし、セルが数値タイプや日付タイプで書式が設定されており、表示されているとおりにStringでほしい場合など、問題が顕著になります。 例えばセルに「-12345.00」という値が設定されており、書式が「▲1,234」だった場合に、 double value = cell.getNumericCellValue(); String retValue = String.valueOf(value); とすると、retVal
前回に引き続き、PostgreSQLのカラム型に対するJDBCアクセスの一覧表です。 PostgreSQL上 java上でのデータ属性 データ型 型名 Types定数 クラス numeric(x, x) numeric 2 java.math.BigDecimal decimal(x, y) numeric java.math.BigDecimal - - 3 - - - 6 - real float4 7 java.lang.Float float4 float4 java.lang.Float float8 float8 8 java.lang.Double double_precision float8 java.lang.Double money money org.postgresql.util.Pgmoney integer int4 4 java.lang.Integer i
前回までに数値と日付について、表示されている内容で取得することが困難なことを述べててきました。 今回ご紹介する数式の場合も厄介です。 数式そのものを取得するには Cell#getCellFormula() で取得できますが、欲しいのは計算された結果(表示されている内容)です。 数式の結果が数値になるとあらかじめ判別できれば、Cell#getNumericCellValue()で取得できますが、必ずしも数値になるとは限りませんし、先の数値編で説明したとおり、表示されている内容での取得は、残念ながらこのままではできません。 また、数式の結果が文字列の場合にも、Cell#getRichStringCellValue().getString()として取得しようとすると、数式が返ってきます。 ここでちょっと検索してみると、FormulaEvaluatorというインターフェースがあることがわかりました
このページを最初にブックマークしてみませんか?
『40歳からのソフトウェア研究員生活』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く