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

Java POI导出Excel

    博客分类:
  • JAVA
 
阅读更多

Controller层代码如下 

 

  1. @Controller    
  2. public class StudentExportController{    
  3.     
  4.     @Autowired    
  5.     private StudentExportService studentExportService;    
  6.     
  7.     @RequestMapping(value = "/excel/export")    
  8.     public void exportExcel(HttpServletRequest request, HttpServletResponse response)     
  9.     throws Exception {    
  10.             
  11.         List<Student> list = new ArrayList<Student>();    
  12.         list.add(new Student(1000,"zhangsan","20"));    
  13.         list.add(new Student(1001,"lisi","23"));    
  14.         list.add(new Student(1002,"wangwu","25"));    
  15.         HSSFWorkbook wb = studentExportService.export(list);    
  16.         response.setContentType("application/vnd.ms-excel");    
  17.         response.setHeader("Content-disposition""attachment;filename=student.xls");    
  18.         OutputStream ouputStream = response.getOutputStream();    
  19.         wb.write(ouputStream);    
  20.         ouputStream.flush();    
  21.         ouputStream.close();    
  22.    }    
  23. }    


Service层代码如下: 

 

  1. @Service    
  2. public class StudentExportService {    
  3.     
  4.     String[] excelHeader = { "Sno""Name""Age"};    
  5.     public HSSFWorkbook export(List<Campaign> list) {    
  6.         HSSFWorkbook wb = new HSSFWorkbook();    
  7.         HSSFSheet sheet = wb.createSheet("Campaign");    
  8.         HSSFRow row = sheet.createRow((int0);    
  9.         HSSFCellStyle style = wb.createCellStyle();    
  10.         style.setAlignment(HSSFCellStyle.ALIGN_CENTER);    
  11.     
  12.         for (int i = 0; i < excelHeader.length; i++) {    
  13.             HSSFCell cell = row.createCell(i);    
  14.             cell.setCellValue(excelHeader[i]);    
  15.             cell.setCellStyle(style);    
  16.             sheet.autoSizeColumn(i);    
  17.         }    
  18.     
  19.         for (int i = 0; i < list.size(); i++) {    
  20.             row = sheet.createRow(i + 1);    
  21.             Student student = list.get(i);    
  22.             row.createCell(0).setCellValue(student.getSno());    
  23.             row.createCell(1).setCellValue(student.getName());    
  24.             row.createCell(2).setCellValue(student.getAge());    
  25.         }    
  26.         return wb;    
  27.     }    
  28. }    


前台的js代码如下: 

 

[javascript] view plaincopy
  1. <script>    
  2. function exportExcel(){    
  3.      location.href="excel/export";    
  4.      <!--这里不能用ajax请求,ajax请求无法弹出下载保存对话框-->    
  5.  }    
  6. </script>    

 

 

设置Excel样式以及注意点:

  1. String[] excelHeader = { "所属区域(地市)""机房""机架资源情况""""""""",  
  2.     """端口资源情况""""""""""""机位资源情况""""""设备资源情况",  
  3.     """""IP资源情况""""""""""网络设备数" };  
  4. String[] excelHeader1 = { """""总量(个)""空闲(个)""预占(个)""实占(个)",  
  5.     "自用(个)""其它(个)""总量(个) ""在用(个)""空闲(个)""总带宽(M)",  
  6.     "在用带宽(M)""空闲带宽(M)""总量(个)""在用(个)""空闲(个)""设备总量(个)",  
  7.     "客户设备(个)""电信设备(个)""总量(个)""空闲(个)""预占用(个)""实占用(个)",  
  8.     "自用(个)""" };  
  9. // 单元格列宽  
  10. int[] excelHeaderWidth = { 150120100100100100100100100,  
  11.     100100120120120120120120150150150120,  
  12.     120150150120150 };  
  13.   
  14. HSSFWorkbook wb = new HSSFWorkbook();  
  15. HSSFSheet sheet = wb.createSheet("机房报表统计");  
  16. HSSFRow row = sheet.createRow((int0);  
  17. HSSFCellStyle style = wb.createCellStyle();  
  18. // 设置居中样式  
  19. style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中  
  20. style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中  
  21.   
  22. // 设置合计样式  
  23. HSSFCellStyle style1 = wb.createCellStyle();  
  24. Font font = wb.createFont();  
  25. font.setColor(HSSFColor.RED.index);  
  26. font.setBoldweight(Font.BOLDWEIGHT_BOLD); // 粗体  
  27. style1.setFont(font);  
  28. style1.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中  
  29. style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中  
  30.   
  31. // 合并单元格  
  32. // first row (0-based) last row (0-based) first column (0-based) last  
  33. // column (0-based)  
  34. sheet.addMergedRegion(new CellRangeAddress(0100));  
  35. sheet.addMergedRegion(new CellRangeAddress(0111));  
  36. sheet.addMergedRegion(new CellRangeAddress(0027));  
  37. sheet.addMergedRegion(new CellRangeAddress(00813));  
  38. sheet.addMergedRegion(new CellRangeAddress(001416));  
  39. sheet.addMergedRegion(new CellRangeAddress(001719));  
  40. sheet.addMergedRegion(new CellRangeAddress(002024));  
  41. sheet.addMergedRegion(new CellRangeAddress(012525));  
  42. // 设置列宽度(像素)  
  43. for (int i = 0; i < excelHeaderWidth.length; i++) {  
  44.     sheet.setColumnWidth(i, 32 * excelHeaderWidth[i]);  
  45. }  
  46.   
  47. // 添加表格头  
  48. for (int i = 0; i < excelHeader.length; i++) {  
  49.     HSSFCell cell = row.createCell(i);  
  50.     cell.setCellValue(excelHeader[i]);  
  51.     cell.setCellStyle(style);  
  52. }  
  53. row = sheet.createRow((int1);  
  54. for (int i = 0; i < excelHeader1.length; i++) {  
  55.     HSSFCell cell = row.createCell(i);  
  56.     cell.setCellValue(excelHeader1[i]);  
  57.     cell.setCellStyle(style);  
  58. }  

 

 


注意点1:合并单元格    new CellRangeAddress(int,int,int,int)

first row (0-based) ,last row (0-based), first column (0-based),last column (0-based)

 

注意点2:合并单元格

String[] excelHeader = { "所属区域(地市)", "机房", "机架资源情况", "", "", "", "","", "端口资源情况", "", "", "", "", "", "机位资源情况", "", "", "设备资源情况","", "", "IP资源情况", "", "", "", "", "网络设备数" };

合并以后的单元格虽然是一个,但是仍然要保留其单元格内容,此处用空字符串代替,否则后续表头显示不出

 

注意点3:填充单元格

正确写法:

HSSFCell cell = row.createCell(i);

cell.setCellValue(excelHeader1[i]);

cell.setCellStyle(style);

错误写法:

row.createCell(i).setCellValue(excelHeader1[i]);

row.createCell(i).setCellStyle(style);

分享到:
评论

相关推荐

    java poi导出excel

    以上就是使用Java POI导出Excel的基本步骤。你可以根据实际需求调整代码,例如添加数据遍历、样式设置、图表生成等功能。确保正确管理资源,避免内存泄漏,特别是在服务器端处理大量数据时。记得在完成后关闭工作簿...

    Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)

    Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)

    Java poi 导出Excel

    通用类的Java导出Excel方法,导出内容是使用json传递,字段描述使用ArrayList数组传递,

    JAVA POI导出EXCEL代码

    本篇文章将详细介绍如何使用JAVA POI导出Excel。 一、准备工作 在开始编写代码前,确保已经添加了Apache POI库到项目的依赖管理中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    java使用POI导出 Excel工具类

    java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。

    Java POI 导出Excel 2007 实例源代码

    Java POI 是一个开源库...以上就是使用Java POI导出Excel 2007的实例源代码所涉及的主要知识点。通过这些步骤,开发者可以轻松地在Java程序中生成符合需求的Excel文件。在实际项目中,可以根据具体需求进行扩展和优化。

    java poi导出excel,弹窗提示下载

    以下是一些关于如何使用Java POI导出Excel并触发浏览器下载的步骤: 1. **创建Workbook对象**: 首先,你需要创建一个Workbook对象,它是Excel文件的容器。根据你的Excel文件类型,可以选择HSSFWorkbook或...

    java POI导出excel

    这个是利用POI导出excel的源码,需要导入poi包,然后把jsp和action的代码拷贝进去就可以直接运行,很基础的代码,很适合初学者学习。 POI可以自己定义导出excel格式的数据,实例就是这样弄的,希望对初学者有帮助。

    Java实现POI导出Excel

    Java实现POI导出Excel是Java开发者常用的一种技术,用于生成和操作Microsoft Office Excel文件。在Java中,Apache POI库提供了对微软Office文档格式的支持,包括读取和写入Excel文件。这篇博客文章...

    java poi 导出excel jar包

    "java poi 导出excel jar包"这个主题,主要涉及的是如何在Java程序中使用POI库来生成Excel文件,并将相关的依赖jar包整合到项目中。 首先,我们需要理解Apache POI的工作原理。它提供了HSSF(Horrible Spreadsheet ...

    POI导出Excel表格

    在这个“POI导出Excel表格”的实例中,我们将深入探讨如何利用Apache POI进行Excel文件的导入与导出操作。 首先,我们需要在项目中集成Apache POI库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...

    JAVA poi 做EXCEL导出(包含图片) 完整版

    本教程将详细介绍如何使用JAVA POI库来创建一个包含图片的完整Excel导出功能。 首先,你需要在项目中引入Apache POI依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache....

    java 利用poi导出EXCEL

    提供的`导出EXCEL.docx`文档可能包含了使用POI导出Excel的代码示例。这个文档通常会详细解释每一步操作,包括如何读取数据、如何设置单元格格式以及如何保存文件。 8. **依赖安装** 要使用Apache POI,你需要在...

    java poi 导出excel

    java poi excel数据的导出

    java poi导出excel含工具类以及示例

    String outputFile = "D:\\excel\\excel.xlsx"; OutputStream outputStream = new FileOutputStream(outputFile); UtilExcel utilExcel = new UtilExcel(); String titles = "所属区域,所属车间,当前处理人,描述...

    java poi导出图片到excel示例代码

    Java POI导出图片到Excel示例代码详解 Java POI是Java开发中常用的开源库,用于读写Microsoft Office文件格式,包括Excel、Word、PowerPoint等。今天,我们将介绍如何使用Java POI将图片导出到Excel中。 标题解释 ...

    java_poi实现excel导入导出

    Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...

    POI的EXCEL导出,自动换行

    通过以上步骤,我们成功地实现了使用Apache POI在Java中导出Excel文件,并实现了自动换行的功能。这种方式不仅可以提高工作效率,还能确保数据的准确性和完整性。 #### 六、注意事项与优化建议 - **兼容性问题**:...

    Java POI 生成Excel时显示货币格式

    在Java开发中,Apache POI库是处理Microsoft Office文件(如Word、Excel)的强大工具。本文将深入探讨如何使用Java POI生成带有货币格式的Excel文件,这在财务报告和其他需要精确货币显示的应用场景中尤为关键。 ##...

Global site tag (gtag.js) - Google Analytics