//poi
Workbook workbook = new XSSFWorkbook(inputStream);
org.apache.poi.ss.usermodel.Sheet sheetAt = workbook.getSheetAt(0);
Row row_1 = sheetAt.getRow(0);
//列数
short lastCellNumrow = row_1.getLastCellNum();
StringBuilder sb = new StringBuilder();
sb.append(sql.substring(0, sql.lastIndexOf(')')));
//行数
int rowCount = sheetAt.getPhysicalNumberOfRows();
for(int rowNum = 1; rowNum < rowCount; rowNum++){
Row rowData = sheetAt.getRow(rowNum);
if(rowData != null){
//获得该行的列总数目
short firstCellNum = rowData.getFirstCellNum();
if(firstCellNum!=0){
break;
}
//getPhysicalNumberOfCells 是获取不为空的列个数。
//getLastCellNum 是获取最后一个不为空的列是第几个
// int lineCount = rowData.getPhysicalNumberOfCells();
short lastCellNum = rowData.getLastCellNum();
for(int lineNum = 0; lineNum < lastCellNum ;lineNum++){
// System.out.print("第" + rowNum +"行,第" + lineNum +"列:");
Cell cell = rowData.getCell(lineNum);
if(cell==null){
sb.append(null + ",");
}
if(cell!=null) {
if(cell.getColumnIndex()!=lineNum){
cell.setBlank();
System.out.println("空值"+cell);
}
CellType cellType = cell.getCellType();
switch (cellType) {
case STRING:
sb.append("'" + cell.getStringCellValue() + "'" + ",");
break;
case BOOLEAN:
sb.append("'" + cell.getBooleanCellValue() + "'" + ",");
break;
case BLANK:
sb.append(null + ",");
break;
case ERROR:
System.out.println("没有该数据类型");
break;
case NUMERIC:
//如果是日期就直接输出,否则就装换为String,然后输出
if (DateUtil.isCellDateFormatted(cell)) {
String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.format(cell.getDateCellValue());
sb.append("'" + format + "'" + ",");
break;
} else {
cell.setCellType(CellType.NUMERIC);
sb.append("'" + cell.toString() + "'" + ",");
break;
}
// case FORMULA:
// String formula = cell.getCellFormula();
// System.out.println("公式:" + formula); break;
default:
System.out.println("该位置没有数据");
break;
}
}
}
网友评论