Excel导出实现代码工具



/**
* 导出计划管理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;    
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值