接着上篇文章《java实现把数据写进Excel表格》,下面把数据取出来的代码也贴出来,写的不好的地方,希望大佬能够多多指教。
上代码:
public List<HashMap<String, String>> getExcelTableC(String file){
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
// 查询指定目录中电子表格中所有的数据
try {
Workbook rwb=Workbook.getWorkbook(new File(file));
//或者rwb.getSheet(0)
Sheet rs=rwb.getSheet("sheet1");
//得到所有的列
int clos=rs.getColumns();
//得到所有的行
int rows=rs.getRows();
for (int i = 1; i < rows; i++) {
for (int j = 0; j < rows; j++) {
HashMap<String,String> map = new HashMap<String,String>();
//第一个是列数,第二个是行数
for (int k = 0; k < rows; k++) {
//默认最左边编号也算一列 所以这里得j++
map.put("id", rs.getCell(j++, i).getContents());
map.put("Cgonghao", rs.getCell(j++, i).getContents());
map.put("Cname", rs.getCell(j++, i).getContents());
}
list.add(map);
}
}
} catch (Exception e) {
logger.info("写入失败...");
}
return list;
}
上面是写的工具类,下面是调用的实例:
public Object saveTableC(TableC tableC) {
Map<String , String> result = new HashMap<String , String>();
try {
File isFileC = new File("e:/TestFile.xls");
if(!isFileC.exists()){
result.put("msg", "错误!文件不存在!");
return false;
}
GetExcelTableCData getExcelTableC = new GetExcelTableCData();
List<HashMap<String , String>> listGetMapExcelCData = getExcelTableC.getExcelTableC("e:/TestFile.xls");
for (int i = 0; i < listGetMapExcelCData.size(); i++) {
tableC.setId(Integer.parseInt(listGetMapExcelCData.get(i).get("id").toString()));
Integer Cgonghao = Integer.parseInt(listGetMapExcelCData.get(i).get("Cgonghao").toString());
tableC.setCgonghao(Cgonghao);
tableC.setCname(listGetMapExcelCData.get(i).get("Cname"));
tableCdao.insertTableC(tableC);
}
result.put("msg", "本地Excel导入数据库成功!");
} catch (Exception e) {
logger.info("本地Excel表导入库失败");
logger.error("发生异常 msg={}","原因",e);
result.put("msg", "错误!导入失败!");
}
return result;
}
中间的都是spring mvc的内容,没有贴出来,不过实现Excel取数据的关键代码已经贴出来了,写的不好的地方欢迎大佬在评论区指教。