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(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント