POI操作EXCEL03前后版本不兼容问题解决
来源:互联网 发布:基三成女捏脸数据 编辑:程序博客网 时间:2024/05/09 22:57
开发程序遇到读取EXCEL时,03前后的版本不兼容,如下
/*
* Workbook、Sheet、Row、Cell等为接口;
* HSSFWorkbook、HSSFSheet、HSSFRow、HSSFCell为97-2003版本对应的处理实现类;
* XSSFWorkbook、XSSFSheet、XSSFRow、XSSFCell为2007+版本对应的处理实现类;
*/
为了解决问题,对POI版本进行了升级,引入新的jar包如下:
poi-3.9-20121203.jar
poi-excelant-3.9-20121203.jar
poi-ooxml-3.9-20121203.jar
poi-ooxml-schemas-3.9-20121203.jar
poi-scratchpad-3.9-20121203.jar
xmlbeans-2.3.0.jar
代码如下:
import org.apache.poi.ss.usermodel.Cell;
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 static List<?> readExcel(ReportBean reportBean, Object obj) {
FileInputStream fis = null;
try {
fis = new FileInputStream(reportBean.getFileName());
/*
* Workbook、Sheet、Row、Cell等为接口;
* HSSFWorkbook、HSSFSheet、HSSFRow、HSSFCell为97-2003版本对应的处理实现类;
* XSSFWorkbook、XSSFSheet、XSSFRow、XSSFCell为2007+版本对应的处理实现类;
*/
Workbook workbook = WorkbookFactory.create(fis);
SheetBean sheetBean = reportBean.getSheetBeanList().get(reportBean.getSheetAt());
Sheet sheet = workbook.getSheetAt(reportBean.getSheetAt());
if (sheet == null){
return null;
}
// 设置读取参数
int startRow = reportBean.getStartRow();
int lastRow = sheet.getPhysicalNumberOfRows();
String[] fieldKeys = sheetBean.getTableBean().getFieldKeys();
// 开始读取表格内容
Row row = null;
Cell cell = null;
List<Object> list = new ArrayList<Object>();
for (int i = startRow; i <= lastRow; i++) {
row = sheet.getRow(i);
if (row == null)
break;
Map<String, Object> map = new HashMap<String, Object>();
for (short j = 0; j < fieldKeys.length; j++) {
cell = row.getCell(j);
if (cell != null && cell.getCellType() == 0)
map.put(fieldKeys[j], String.valueOf(cell.getNumericCellValue()));
else
map.put(fieldKeys[j], (cell == null ? "" : cell.getStringCellValue()));
}
list.add(map);
}
List<Object> entitys = new ArrayList<Object>();
// Json中转方式
if (obj instanceof Map<?, ?> || obj instanceof HashMap<?, ?>) {
entitys = list;
} else {
String jsonStr = JsonUtil.convertListToJson(list);
entitys = (List<Object>) JsonUtil.convertJsonToList(jsonStr, obj);
}
return entitys;
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
- POI操作EXCEL03前后版本不兼容问题解决
- POI操作EXCEL03和EXCEL07以上版本
- 解决Opencv高低版本不兼容问题
- 解决Opencv高低版本不兼容问题
- 解决Opencv高低版本不兼容问题
- 解决Opencv高低版本不兼容问题
- 解决Opencv高低版本不兼容问题
- tensorflow版本API不兼容问题解决
- 解决docker-py api版本不兼容问题
- RecyclerView使用时版本不兼容问题解决
- DLL版本不兼容问题
- DLL版本不兼容问题
- jstl版本不兼容问题
- log4net版本不兼容问题
- S60模拟器与java1.6版本不兼容问题的解决
- 解决hbase和hdfs的hadoop版本不兼容问题
- 关于解决css3在低版本ie不兼容问题
- eclipse安装fatjar插件方法及版本不兼容问题解决
- 批处理命令
- 2013 Multi-University Training Contest 1 Occupy Cities HDU 4606
- 解决Win7启动菜单乱码 .
- C# 快捷键大全
- 电子商务类站点终极资源大全
- POI操作EXCEL03前后版本不兼容问题解决
- js获取cookie的值
- Window Phone 7开发环境的配置(在Microsoft Vistual Studio 2010中 )安装与WP7编程
- C++的运算符重载
- War3.mpq中slk文件详解
- 1元钱,可化为多少个1分,2分,5分
- 光 颜色 波长 眼睛
- 如何设置数据库用户的权限
- 修改Weblogic的JDK路径以解决其不能正常启动的问题