依赖如下:
private void importData(HttpServletRequest req, HttpServletResponse resp){
String iYear = "";//假设前面传了两个参数,第一个参数是年
String iQuarter = "";//第二个参数是季度
List items;
try {
items = importFile(req, resp);
for (FileItem item : items) {
String name = "";
String value = "";
if (item.isFormField()) {
name = item.getFieldName();
value = item.getString("utf-8");
if (name.equals("importYear")) //获取参数一
iYear = value;
if (name.equals("importQuarter")) //获取参数二
iQuarter = value;
}
}
for (FileItem item : items) {
if (!item.isFormField()) {
InputStream in = item.getInputStream();
//读取原始数据
List
POI导出excel
private void exportData(HttpServletResponse resp){
String iFileName = "XXX模板";
try {
OutputStream out = resp.getOutputStream();
resp.reset();
resp.setHeader(
"content-disposition",
"attachment;filename="
+ java.net.URLEncoder.encode(iFileName,
"UTF-8") + ".xls");
resp.setContentType("application/msexcel");
List> data = new ArrayList>();
String[] header0 = { "姓名" , "角色" , "权重" ,"说明" ,"排序"};
String[] header1 = { "部门类型", "部门名称", "领导","说明" ,"部门排序"};
String[] header2 = { "部门名称", "人员名称", "职位", "说明", "特殊处理" , "人员排序"};
ExportExcelUtils eeu = new ExportExcelUtils();
HSSFWorkbook workbook = new HSSFWorkbook();
eeu.exportExcel(workbook, 0, "Sheet_1名称", header0, data, out);
eeu.exportExcel(workbook, 1, "Sheet_2名称", header1, data, out);
eeu.exportExcel(workbook, 2, "Sheet_3名称", header2, data, out);
// 原理就是将所有的数据一起写入,然后再关闭输入流。
workbook.write(out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
ExportExcelUtils.exportExcel方法内容如下:
public void exportExcel(HSSFWorkbook workbook, int sheetNum, String sheetTitle, String[] headers, List> result, OutputStream out) throws Exception { // 生成一个表格 HSSFSheet sheet = workbook.createSheet(); workbook.setSheetName(sheetNum, sheetTitle); // 设置表格默认列宽度为20个字节 sheet.setDefaultColumnWidth((short) 20); // 生成一个样式 HSSFCellStyle style = workbook.createCellStyle(); // 设置这些样式 style.setFillForegroundColor(HSSFColor.PALE_BLUE.index); style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 生成一个字体 HSSFFont font = workbook.createFont(); font.setFontName("宋体"); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 把字体应用到当前的样式 style.setFont(font); // 指定当单元格内容显示不下时自动换行 style.setWrapText(true); // 产生表格标题行 HSSFRow row = sheet.createRow(0); for (int i = 0; i < headers.length; i++) { HSSFCell cell = row.createCell((short) i); cell.setCellStyle(style); HSSFRichTextString text = new HSSFRichTextString(headers[i]); cell.setCellValue(text.toString()); } // 遍历集合数据,产生数据行 if (result != null) { int index = 1; for (List
m : result) { row = sheet.createRow(index); int cellIndex = 0; for (String str : m) { HSSFCell cell = row.createCell((short) cellIndex); cell.setCellValue(str.toString()); cellIndex++; } index++; } } }



