解析excel获取数据
java代码:
/**
* 导入excel模板
* @param user
* @param file
* @param hyapId
* @return
*/
@Transactional
public JsonData importPxhExcel(User user, MultipartFile file,String hyapId) {
List<Map> list_data = new ArrayList<Map>();
String msg = "";
try {
//一、解析excel数据
list_data = JxPxhExcel(user, file,hyapId);//得到数据
hyapInnerUserMapper.updateMdpxhByHyapId(list_data,hyapId);//将数据修改到数据库
} catch (Exception e) {
//e.printStackTrace();
return JsonData.buildError("请求失败!请将文件另存为xls格式 ");
}
return JsonData.buildSuccess(msg);
}
/**
* 解析excel
* @param user
* @param file
* @param hyapId
* @return
* @throws Exception
*/
private List<Map> JxPxhExcel(User user, MultipartFile file,String hyapId) throws Exception {
List<Map> list = new ArrayList<Map>();
WorkbookSettings setting = new WorkbookSettings();//创建工作簿属性设置实例化
setting.setEncoding("GBK"); //设置编码
Workbook rwb = Workbook.getWorkbook(file.getInputStream(), setting);//获取工作簿
Sheet[] sheet = rwb.getSheets();//获取所有表格
Sheet rs = rwb.getSheet(0);//获取第一张excel
for (int j = 1; j < rs.getRows(); j++) {//行
Cell[] cells = rs.getRow(j);//获取每一行的所有单元格
Map map1 = new HashMap();
if(cells.length > 0) {
for(int k = 0; k < cells.length; k ++) {//列
Cell cell = cells[k];//遍历某一行的单元格,cells[0]userid、cells[1]truename、cells[2]pxh
String val = ConverterUtils.nullToStr(cell.getContents()).trim().replaceAll(" ", "");//获取每一个单元格的内容
if(j>0){
if(k==0){//用户id列
map1.put("userid", val);
}else if(k==1){//姓名 列
map1.put("truename", val);
}else if(k==2){//排序号 列
map1.put("md_pxh", val);
}
}
}
}
list.add(map1);
}
return list;
}