java导出excel表格:
1、导入jar包
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.5-FINAL</version></dependency>
2、编写工具类
package utils;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;publicclass ExcelUtil {
publicstatic HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,String [][]values, HSSFWorkbook wb){
// 第一步,创建一个webbook,对应一个Excel文件 if(wb ==null){
wb =new HSSFWorkbook();
}
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = wb.createSheet(sheetName);
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short HSSFRow row = sheet.createRow(0);
// 第四步,创建单元格,并设置值表头 设置表头居中 HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell =null;
//创建标题for(inti=0;i
cell = row.createCell(i);
cell.setCellValue(title[i]);
cell.setCellStyle(style);
}
//创建内容for(inti=0;i
row = sheet.createRow(i + 1);
for(intj=0;j
row.createCell(j).setCellValue(values[i][j]);
}
}
return wb;
}
}
3、导入表格信息
package mvc.controller;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.List;import javax.annotation.Resource;import javax.servlet.http.HttpServletResponse;import mvc.model.Feedback;import mvc.model.JResponse;import mvc.model.apis.DownloadExcel;import mvc.service.IAppInfoService;import mvc.service.IBusinessService;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import com.prize.utils.StringUtil;import utils.ExcelUtil;
@Controller
@RequestMapping(value="/excel/*")publicclass ExcelController {
@Resource
private IAppInfoService appinfoService;
@Resource
private IBusinessService businessService;
@RequestMapping(value = "exportfeedback")
@ResponseBody
public JResponse exportFeedBack(HttpServletResponse response,
@RequestParam(value="query", required=false) String searchText,
@RequestParam(value="type", required=false) String strType,
@RequestParam(value="startDate", required=false) String startDate,
@RequestParam(value="endDate", required=false) String endDate){
String fileName = "反馈明细"+System.currentTimeMillis()+".xls";//文件名 String sheetName = "反馈明细";//sheet名
String []title =newString[]{"Id","导航图标","反馈类型","内容","联系方式","应用Id","应用版本","反馈时间"};//标题
List list = appinfoService.getAllFeedbackForExcel(searchText, strType, startDate, endDate);//内容list
SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String [][]values =new String[list.size()][];
for(inti=0;i
values[i] =new String[title.length];
//将对象内容转换成stringFeedback obj = list.get(i);
values[i][0] = obj.getId()+"";
values[i][1] = obj.getFiles();
values[i][2] = obj.getFbType();
values[i][3] = obj.getContent();
values[i][4] = obj.getContactInfo();
values[i][5] = obj.getAppId();
values[i][6] = obj.getVersionName();
values[i][7] = sdf.format(obj.getCreateTime());
}
HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, title, values,null);
//将文件存到指定位置 try {
this.setResponseHeader(response, fileName);
OutputStream os = response.getOutputStream();
wb.write(os);
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
returnJResponse.success("ok");
}
publicvoid setResponseHeader(HttpServletResponse response, String fileName) {
try {
try {
fileName =newString(fileName.getBytes(),"ISO8859-1");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
response.setContentType("application/octet-stream;charset=ISO8859-1");
response.setHeader("Content-Disposition", "attachment;filename="+ fileName);
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
注意这里将 List list = appinfoService.getAllFeedbackForExcel(searchText, strType, startDate, endDate);//内容list 换成你自己的获取数据方法,将values二维数组导入util工具类方法中即可。
整体思路:将二维数组导入excel。
4、访问link即可,如:XXX
/excel/exportfeedback
导出Excel
$('#js-export').click(function(){
window.location.href="//www.greatytc.com/xxx/excel/exportfeedback?type="+$('#type').val()+"&startDate="+$('#table_start_date').val()+"&endDate="+$('#table_end_date').val();
});
分类