Apache POIで2003形式(xls)と2007形式(xlsx)の両方を使用する方法
Javaでエクセルを扱うときはApache POIがメジャーだと思います。
Apache POIはこちらからダウンロードします。
Apache POIのバージョンが3.4くらい(確認したのは3.2)までだと2003以前のエクセルと2007のエクセルで、扱うライブラリが異なります。
2003(org.apache.poi.hssf.~) 2007(org.apache.poi.xssf.~)
Apache POIのバージョンが3.5から、2003と2007の両方を扱えるライブラリが用意されています。
2003 or 2007(org.apache.poi.ss.~)
org.apache.poi.ss.usermodel.Cellの定数
Cellクラスには以下のstatic定数があります。
CELL_TYPE_NUMERIC CELL_TYPE_STRING CELL_TYPE_FORMULA CELL_TYPE_BLANK CELL_TYPE_BOOLEAN CELL_TYPE_ERROR
以下、使用例です。
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ApachePoi { /** * @param args * @throws IOException * @throws FileNotFoundException * @throws InvalidFormatException */ public static void main(String[] args) throws FileNotFoundException, IOException, InvalidFormatException { Workbook wb = WorkbookFactory.create(new FileInputStream("D:\\sample.xlsx")); Sheet sheet = wb.getSheet("Sheet1"); for (Row row : sheet) { for (Cell cell : row) { System.out.println(getCellValue(cell, "yyyy/MM/dd")); } } } public static Object getCellValue(Cell cell,String date) { switch (cell.getCellType()) { case Cell.CELL_TYPE_STRING: return cell.getRichStringCellValue().getString(); case Cell.CELL_TYPE_NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { Date dateValue = cell.getDateCellValue(); DateFormat dateFormat = new SimpleDateFormat(date); return dateFormat.format(dateValue); } else { return cell.getNumericCellValue(); } case Cell.CELL_TYPE_BOOLEAN: return cell.getBooleanCellValue(); case Cell.CELL_TYPE_FORMULA: return cell.getCellFormula(); default: return null; } } }
POIで必要なライブラリ
poi-bin-3.16-20170419.zipをダウンロードして、不要なjarもあります。
必要なjarは以下になります。
poi-3.16.jar poi-ooxml-3.16.jar poi-ooxml-schemas-3.16.jar ooxml-libフォルダ配下に存在するxmlbeans-2.6.0.jar
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント