/*批量上传Excel文件并且解析案例*/
发文原因是自己记录,方便以后使用,如果不妥请指教!
public ActionForward addPushImei(ActionMapping mapping, ActionForm actionFrom,
HttpServletRequest req, HttpServletResponse response) {
List<Map<String, Object>> results = batchOpByExcel(actionFrom);
.......
}
private List<Map<String, Object>> batchOpByExcel(ActionForm form) {
JSONObject result = new JSONObject();
//该方法可以获得存放着所上传的文件的 HashTable 集合.
Map formFiles = form.getMultipartRequestHandler().getFileElements();
FormFile formFile = null;
InputStream in = null;
//用于存放excel文件数据
List<Map<String, Object>> excelData = new ArrayList<Map<String, Object>>();
try {
Set<Map.Entry<String, Object>> keyEntrySet = formFiles.entrySet();
for (Map.Entry<String, Object> et : keyEntrySet) {
formFile = (FormFile) et.getValue();
//获取文件流
in = formFile.getInputStream();
String cols[] = getColsByOpType();
//读取excel内容
excelData = ExcelReader.getExcelData(in, cols, 0);//getExcelData方法省略
}
} catch (Exception e) {
logger.error("batchOpByExcel Exception = " + e, e);
result.put("state", "fail");
} finally {
if (null != in) {
try {
in.close();
} catch (IOException e) {
logger.error("batchOpByExcel Exception = " + e, e);
}
}
}
return excelData;
}
//通过类型获取列
private String[] getColsByOpType() {
return new String[] { "imei" };
}