/**
* 导出计划管理Excel
* @param request 请求
* @param patyId 设备所选择的组织ID
* @return
*/
@RequestMapping("/exportExcel")
public Object exportExcel(HttpServletRequest request,HttpServletResponse response,String[] No)throws Exception {
AjaxJson j = new AjaxJson();
HSSFWorkbook wb = this.jobdispov6Service.exportExcel(No);
response.setContentType("application/vnd.ms-excel");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = df.format(new Date());
response.setHeader("Content-disposition", "attachment;filename="+date+".xls");
OutputStream ouputStream = response.getOutputStream();
wb.write(ouputStream);
ouputStream.flush();
ouputStream.close();
j.setMsg("true");
return j;
}
/**
* @author lpf-pc
* LPF
* 2016年10月25日08:41:57
*/
@Override
public HSSFWorkbook exportExcel(String[] No) {
String sheetName="计划导出";
String[] rowName = {"订单编号", "零件编号", "零件名称","工序","数量","设备编号","设备名称","计划开始时间","计划结束时间","实际开始时间","实际结束时间"};
//将查询出的数据设置到sheet对应的单元格中
List<Map> data = (List<Map>) jobDao.exportExcel(No);
return this.exportToExcel(sheetName, rowName, data);
}
/**
* @author lpf-pc
* LPF
* 2016年10月25日08:41:57
*/
@Override
public HSSFWorkbook exportToExcel(String sheetName,String[] rowName,List<Map> dataList) {
HSSFWorkbook workbook = new HSSFWorkbook(); // 创建工作簿对象
HSSFSheet sheet = workbook.createSheet(sheetName); // 创建工作表
//sheet样式1.标题样式getColumnTopStyle()/2.内容样式getStyle()
HSSFCellStyle columnTopStyle = this.getColumnTopStyle(workbook);//获取列头样式对象
HSSFCellStyle style = this.getStyle(workbook); //单元格样式对象
// 定义所需列数
int columnNum = rowName.length;
HSSFRow rowRowName = sheet.createRow(0);//创建行(最顶端开始)
// 将列头设置到sheet的单元格中
for(int n=0;n<columnNum;n++){
HSSFCell cellRowName = rowRowName.createCell(n); //创建列头对应个数的单元格
cellRowName.setCellType(HSSFCell.CELL_TYPE_STRING); //设置列头单元格的数据类型
HSSFRichTextString text = new HSSFRichTextString(rowName[n]);
cellRowName.setCellValue(text); //设置列头单元格的值
cellRowName.setCellStyle(columnTopStyle); //设置列头单元格样式
}
//将查询出的数据设置到sheet对应的单元格中
int r=0;
for (Map<String, Object> m : dataList) {
int n=0;
HSSFRow row = sheet.createRow(r+1);//创建所需的行数
for (String k : m.keySet()){
HSSFCell cell = null;//设置单元格的数据类型
cell = row.createCell(n,HSSFCell.CELL_TYPE_STRING);
if(m.get(k)!=null){
cell.setCellValue(m.get(k).toString());//设置单元格的值
}else{
cell.setCellValue("");//设置单元格的值
}
n++;
cell.setCellStyle(style);//设置单元格样式
}
r++;
}
for (int colNum = 0; colNum < columnNum; colNum++) {
//批量设置单元格宽度lipf
sheet.setColumnWidth(colNum, 4200);
}
return workbook;
}