`
zoushaohua84
  • 浏览: 10011 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Excel文件导出

 
阅读更多

jsp页面

 

//导Excel
 function makeExcel(){
     var startDate=$('#startDate').val();
     var endDate=$('#endDate').val();
    
     if('' == startDate || null == startDate){
         alert('开始日期不能为空!');
         $('#startDate').focus();
         return false ;
     }
    
     if('' == endDate || null == endDate){
         alert('终止日期不能为空!');
         $('#endDate').focus();
         return false ;
     }

  if(confirm("确认导出Excel吗?")){
   window.location.href="<%=basePath%>jsp/pmas/custReportAction!makeExcelYhsdgc.action?startDate="+startDate+"&endDate="+endDate;   
  }
 }

 

------------------------------------------------------

 

Java代码

public void makeExcelYhsdgc(){
  HttpServletResponse response = ServletActionContext.getResponse();
  Map<String, String> param = new HashMap<String, String>();
  param.put("startDate", startDate);
  param.put("endDate", endDate);
  
  List resList = new ArrayList();
  
  String filename = "10kV及以上用户受电工程信息明细表.xls";
  try {
   filename = URLEncoder.encode(filename, "UTF-8");
  } catch (UnsupportedEncodingException e1) {
   logger.error("不支持UTF-8编码", e1);
  }

  response.addHeader("Content-Disposition", "attachment;filename="+ filename);
  
  response.setContentType("application/msexcel;charset=UTF-8");// 定义输出类型

  resList = icustReportService.queryYhsdgc(param);
  ServletOutputStream sos = null;
  ByteArrayOutputStream out = null;
  try {
   sos = response.getOutputStream();

   Workbook wb = makeYhsdgcWorkbook(resList);
   out = new ByteArrayOutputStream();
   wb.write(out);
   byte[] buf = out.toByteArray();
   sos.write(buf);
   sos.flush();
  } catch (IOException e) {
   logger.error("Excel文件导出异常", e);
  } finally {
   try {
    if (sos != null) {
     sos.close();
    }
    if (out != null) {
     out.close();
    }
   } catch (IOException e) {
    logger.error("Excel文件导出异常", e);
   }
  }
 }

--------   makeYhsdgcWorkbook(resList) 方法

private Workbook makeYhsdgcWorkbook(List<CustMonthInfo> list) throws IOException {

  Workbook wb = new HSSFWorkbook();
  
  Sheet sheet = wb.createSheet("10kV及以上用户受电工程信息明细表");

  CellStyle styleTitle = wb.createCellStyle();
  styleTitle.setBorderBottom(CellStyle.BORDER_THIN);
  styleTitle.setBorderTop(CellStyle.BORDER_THIN);
  styleTitle.setBorderLeft(CellStyle.BORDER_THIN);
  styleTitle.setBorderRight(CellStyle.BORDER_THIN);
  styleTitle.setAlignment(CellStyle.ALIGN_CENTER);
  styleTitle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
  Font fontTitle = wb.createFont();
  fontTitle.setBoldweight(Font.BOLDWEIGHT_BOLD);
  fontTitle.setFontHeightInPoints((short) 16);
  styleTitle.setFont(fontTitle);

  // Title
  Row row = sheet.createRow(0);
  Cell cell = row.createCell(0);

  cell.setCellValue("10kV及以上用户受电工程信息明细表");
  cell.setCellStyle(styleTitle);

  CellRangeAddress rangeAddress = new CellRangeAddress(0, 0, 0, 22);
  ExcelUtil.addMergedRegionStyle(wb, sheet, rangeAddress, styleTitle);

  // 表头
  CellStyle style = wb.createCellStyle();
  style.setBorderBottom(CellStyle.BORDER_THIN);
  style.setBorderTop(CellStyle.BORDER_THIN);
  style.setBorderLeft(CellStyle.BORDER_THIN);
  style.setBorderRight(CellStyle.BORDER_THIN);
  style.setAlignment(CellStyle.ALIGN_CENTER);
  style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
  Font font = wb.createFont();
  font.setBoldweight(Font.BOLDWEIGHT_NORMAL);
  fontTitle.setFontHeightInPoints((short) 12);
  style.setFont(font);
  row = sheet.createRow(1);
  
  // 序号
  cell = row.createCell(0);
  cell.setCellValue("序号");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 0,0), style);
  sheet.setColumnWidth((short) 0, (short) 1800);
  // 申请编号
  cell = row.createCell(1);
  cell.setCellValue("申请编号");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 1,1), style);
  sheet.setColumnWidth((short) 1, (short) 4000);
  // 户名
  cell = row.createCell(2);
  cell.setCellValue("户名");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 2,2), style);
  sheet.setColumnWidth((short) 2, (short) 10000);
  // 地址
  cell = row.createCell(3);
  cell.setCellValue("地址");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 3,3), style);
  sheet.setColumnWidth((short) 3, (short) 10000);
  // 用电联系人
  cell = row.createCell(4);
  cell.setCellValue("用电联系人");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 4,4), style);
  sheet.setColumnWidth((short) 4, (short) 4000);
  // 联系电话
  cell = row.createCell(5);
  cell.setCellValue("联系电话");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 5,5), style);
  sheet.setColumnWidth((short) 5, (short) 7000);
  // 供电容量
  cell = row.createCell(6);
  cell.setCellValue("供电容量");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 6,6), style);
  sheet.setColumnWidth((short) 6, (short) 4000);
  // 供电电压
  cell = row.createCell(7);
  cell.setCellValue("供电电压");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 7,7), style);
  sheet.setColumnWidth((short) 7, (short) 4000);
  // 申请时间
  cell = row.createCell(8);
  cell.setCellValue("申请时间");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1, 8,8), style);
  sheet.setColumnWidth((short) 7, (short) 5000);
  //接电时间
  cell = row.createCell(9);
  cell.setCellValue("接电时间");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1,9, 9), style);
  sheet.setColumnWidth((short) 7, (short) 4000);
  // 设计单位
  cell = row.createCell(10);
  cell.setCellValue("设计单位");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1,10, 10), style);
  sheet.setColumnWidth((short) 7, (short) 10000);
  // 施工单位
  cell = row.createCell(11);
  cell.setCellValue("施工单位");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1,11, 11), style);
  sheet.setColumnWidth((short) 7, (short) 10000);
  // 高压设备生产厂家
  cell = row.createCell(12);
  cell.setCellValue("高压设备生产厂家");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1,12, 12), style);
  sheet.setColumnWidth((short) 7, (short) 10000);
  // 有无供电方关联企业
  cell = row.createCell(13);
  cell.setCellValue("有无供电方关联企业");
  cell.setCellStyle(style);
  ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1,13, 13), style);
  sheet.setColumnWidth((short) 7, (short) 3000);

  // 明细数据
  for (int i = 0; i < list.size(); i++) {

   CustMonthInfo custMonthInfo =(CustMonthInfo) list.get(i);

   row = sheet.createRow(i+3);
   // 序号
   cell = row.createCell(0);
   cell.setCellValue(""+(i+1));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 0, 0), style);
   
   // 申请编号
   cell = row.createCell(1);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getAppid()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 1, 1), style);
   // 户名
   cell = row.createCell(2);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getCustname()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 2, 2), style);
   // 地址
   cell = row.createCell(3);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getAddress()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 3, 3), style);
   // 用电联系人
   cell = row.createCell(4);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getContactname()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 4, 4), style);
   // 联系电话
   cell = row.createCell(5);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getContactphone()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 5, 5), style);
   // 供电容量
   cell = row.createCell(6);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getCapa()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 6, 6), style);
   // 供电电压
   cell = row.createCell(7);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getVoltage()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 7, 7), style);
   //申请时间
   cell = row.createCell(8);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getApptime()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 8, 8), style);
   //接电时间
   cell = row.createCell(9);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getRealtime()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 9, 9), style);
   //设计单位
   cell = row.createCell(10);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getDesignname()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 10, 10), style);
   //施工单位
   cell = row.createCell(11);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getFidname()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 11, 11), style);
   //高压设备生产厂家
   cell = row.createCell(12);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getFactory()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 12, 12), style);
   //有无供电方关联企业
   cell = row.createCell(13);
   cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getGlqy()));
   cell.setCellStyle(style);
   ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 13, 13), style);

  }
  return wb;
 }

分享到:
评论

相关推荐

    asp.net+Ajax实现Excel文件导出

    在ASP.NET中实现Excel文件导出,通常有以下步骤: 1. **创建ASP.NET Web页面**:首先,我们需要创建一个ASP.NET Web Forms或MVC项目,并添加一个页面。在这个页面上,我们将放置用于触发导出操作的按钮或链接。 2....

    C# .net 4.8 版本处理,游戏辅助工具,可以对excel文件导出,protobuf文件的编译.zip

    C# .net 4.8 版本处理,游戏辅助工具,可以对excel文件导出,protobuf文件的编译.zipC# .net 4.8 版本处理,游戏辅助工具,可以对excel文件导出,protobuf文件的编译.zipC# .net 4.8 版本处理,游戏辅助工具,可以对...

    基于Java反射机制的Excel文件导出实现.pdf

    "基于Java反射机制的Excel文件导出实现" 本文探讨了基于Java反射机制的Excel文件导出实现的原理和方法。通过利用Java的反射机制,实现了Excel文件的导出,提高了导出文件的个性化和易用性。 Java反射机制是Java...

    使用POI,实现excel文件导出,图片url导出文件,图片和excel文件导出压缩包

    本文将深入探讨如何使用POI库来实现Excel文件的导出,以及如何将图片URL转换为图片文件并与其他文件一起打包成压缩包。 首先,让我们了解一下Apache POI。POI是Java开发者的开源API,它允许程序创建、修改和显示...

    java Excel文件导出java类

    java Excel文件导出java类java Excel文件导出java类

    导出EXCEL文件导出EXCEL

    用于考核的系统,导出EXCEL导出EXCEL

    基于Goframe的Excel文件导出

    基于Goframe的Excel文件导出

    vue excel导入导出.zip

    在Vue.js框架中,处理Excel文件的导入与导出是一项常见的需求,特别是在数据管理或数据分析应用中。Vue Excel导入导出通常涉及到JavaScript库的使用,例如`xlsx`库,它是一个强大的JavaScript工具,用于处理Excel...

    java web Excel文件导出

    提供列表查询匹配的excel数据导出,引用该工具类,只需要在页面上引用导出的自定义标签,然后按照提供的使用文档进行配置,后端action层或者controller层,实现其数据加载的抽象方法即可(使用方式也在文档中说明)...

    数据文件excel文件导出类

    不支持HTML

    POI导出Excel文件

    这个实例提供了两种方法来导出Excel文件:通过Servlet和通过main方法。这两种方法都是在Java环境中操作Excel数据的有效方式。 首先,让我们详细了解一下Apache POI库。POI提供了一个API,允许开发者在Java应用程序...

    Excel通用导出excel文件

    在Excel中进行数据管理和分析时,我们经常需要将数据导出为Excel文件,以便于分享、备份或进一步处理。"Excel通用导出excel文件"这个主题涵盖了如何在不同情况下高效地实现这一目标,不论你是要处理小规模的数据还是...

    ext实现导出excel的功能。

    通常,我们先将数据转换为适合Excel的格式,然后利用`blob`对象和`window.URL.createObjectURL`创建一个临时的下载链接,用户点击后即可下载Excel文件。 8. **性能优化**:当数据量很大时,一次性加载所有数据可能...

    Spring Boot Excel文件导出下载实现代码

    Spring Boot Excel文件导出下载实现代码 Spring Boot 是一种流行的 Java 框架,用于构建Web 应用程序。Excel 文件导出是许多应用程序的常见需求,本文将介绍如何使用 Spring Boot 实现 Excel 文件的直接导出下载。 ...

    JAVA中excel导入导出通用方法

    可以使用 `HttpServletResponse` 对象来将 excel 文件导出到浏览器中,用户可以选择是否保存 excel 文件。 七、异常处理 在导出 excel 文件时,需要捕获可能出现的异常,例如文件流异常、网络异常等。 八、源代码...

    C# 导出Excel文件

    通过对这些代码的理解和学习,开发者可以快速掌握Excel文件导出的基本流程和技术要点。 #### 结论 通过上述方法,我们可以方便地使用C#实现Excel文件的导出功能。这种方式不仅简单高效,而且具有很好的灵活性,可以...

    Excel导入导出测试程序,测试通过

    标签“导入导出”进一步确认了该程序的主要功能,即处理数据的导入到Excel文件以及从Excel文件导出数据。这可能包括从数据库、文本文件或其他数据源导入数据,或者将Excel数据导出到其他格式,如CSV、XML或数据库。 ...

    SpringBoot +Mybatis +POI导入、导出Excel文件

    4. **Excel文件导出** - 在需要导出Excel的接口中,根据业务需求查询数据库中的数据,并转换为List集合。 - 创建一个新的Workbook对象,然后创建Sheet,再在Sheet中创建Row和Cell,填充数据。 - 设置样式、合并...

    java导出30万数据量的excel(采用生成多个excel,最后打包zip)

    在Java开发中,处理大数据量的Excel导出是一项常见的任务,尤其当数据量达到数十万条时,单个Excel文件可能会遇到性能瓶颈或格式限制。本项目针对这一问题提出了一种解决方案,即分块生成多个Excel文件,然后将它们...

Global site tag (gtag.js) - Google Analytics