poiを使用したサンプル
/**
* poiを使用したサンプル
*/
protected boolean poiSample() {
//Excelのワークブックを読み込みます。
POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream("C:/temp.xls"));
HSSFWorkbook book = new HSSFWorkbook(filein);
//シートを読み込みます。
HSSFSheet sheet = book.getSheet("sheet1");
//セルの値を取得
for (int i = ROW_START; i <= sheet.getLastRowNum(); i++) {
HSSFRow row = sheet.getRow(i);
if(row == null){
break;
}
//データ取得
String cell_1 = getCellValue(row.getCell(1), true);
String cell_2 = getCellValue(row.getCell(2), false);
}
}
セルの値を取得するサンプル
/**
* セルの値を取得.
* @param cell
* @param trim_flg
* @return
*/
public static String getCellValue(HSSFCell cell, boolean trim_flg ){
int cell_typ = cell.getCellType();
String ret = "";
//空白
if(cell_typ == HSSFCell.CELL_TYPE_BLANK){
ret = cell.getStringCellValue();
}
//TODO:Boolean型?
else if(cell_typ == HSSFCell.CELL_TYPE_BOOLEAN ){
ret = cell.getStringCellValue();
}
//TODO:エラーコード?
else if(cell_typ == HSSFCell.CELL_TYPE_ERROR ){
ret = cell.getStringCellValue();
}
//TODO:計算式?
else if(cell_typ == HSSFCell.CELL_TYPE_FORMULA ){
String tmp = String.valueOf(cell.getNumericCellValue());
if("NaN".equals(tmp)){
ret = cell.getStringCellValue();
}
else{
ret = delScale(tmp);
}
}
//数値型
else if(cell_typ == HSSFCell.CELL_TYPE_NUMERIC ){
ret = delScale(String.valueOf(cell.getNumericCellValue()));
}
//文字列型
else if(cell_typ == HSSFCell.CELL_TYPE_STRING ){
ret = cell.getStringCellValue();
}
if(trim_flg){
if(ret.length() != 1){
ret = ret.trim();
}
}
return ret;
}
最終更新:2008年06月24日 18:33