Controller层代码如下
- @Controller
- public class StudentExportController{
- @Autowired
- private StudentExportService studentExportService;
- @RequestMapping(value = "/excel/export")
- public void exportExcel(HttpServletRequest request, HttpServletResponse response)
- throws Exception {
- List<Student> list = new ArrayList<Student>();
- list.add(new Student(1000,"zhangsan","20"));
- list.add(new Student(1001,"lisi","23"));
- list.add(new Student(1002,"wangwu","25"));
- HSSFWorkbook wb = studentExportService.export(list);
- response.setContentType("application/vnd.ms-excel");
- response.setHeader("Content-disposition", "attachment;filename=student.xls");
- OutputStream ouputStream = response.getOutputStream();
- wb.write(ouputStream);
- ouputStream.flush();
- ouputStream.close();
- }
- }
Service层代码如下:
- @Service
- public class StudentExportService {
- String[] excelHeader = { "Sno", "Name", "Age"};
- public HSSFWorkbook export(List<Campaign> list) {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet("Campaign");
- HSSFRow row = sheet.createRow((int) 0);
- HSSFCellStyle style = wb.createCellStyle();
- style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
- for (int i = 0; i < excelHeader.length; i++) {
- HSSFCell cell = row.createCell(i);
- cell.setCellValue(excelHeader[i]);
- cell.setCellStyle(style);
- sheet.autoSizeColumn(i);
- }
- for (int i = 0; i < list.size(); i++) {
- row = sheet.createRow(i + 1);
- Student student = list.get(i);
- row.createCell(0).setCellValue(student.getSno());
- row.createCell(1).setCellValue(student.getName());
- row.createCell(2).setCellValue(student.getAge());
- }
- return wb;
- }
- }
前台的js代码如下:
- <script>
- function exportExcel(){
- location.href="excel/export";
- <!--这里不能用ajax请求,ajax请求无法弹出下载保存对话框-->
- }
- </script>
设置Excel样式以及注意点:
- String[] excelHeader = { "所属区域(地市)", "机房", "机架资源情况", "", "", "", "",
- "", "端口资源情况", "", "", "", "", "", "机位资源情况", "", "", "设备资源情况",
- "", "", "IP资源情况", "", "", "", "", "网络设备数" };
- String[] excelHeader1 = { "", "", "总量(个)", "空闲(个)", "预占(个)", "实占(个)",
- "自用(个)", "其它(个)", "总量(个) ", "在用(个)", "空闲(个)", "总带宽(M)",
- "在用带宽(M)", "空闲带宽(M)", "总量(个)", "在用(个)", "空闲(个)", "设备总量(个)",
- "客户设备(个)", "电信设备(个)", "总量(个)", "空闲(个)", "预占用(个)", "实占用(个)",
- "自用(个)", "" };
- // 单元格列宽
- int[] excelHeaderWidth = { 150, 120, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 120, 120, 120, 120, 120, 120, 150, 150, 150, 120,
- 120, 150, 150, 120, 150 };
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet("机房报表统计");
- HSSFRow row = sheet.createRow((int) 0);
- HSSFCellStyle style = wb.createCellStyle();
- // 设置居中样式
- style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
- style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中
- // 设置合计样式
- HSSFCellStyle style1 = wb.createCellStyle();
- Font font = wb.createFont();
- font.setColor(HSSFColor.RED.index);
- font.setBoldweight(Font.BOLDWEIGHT_BOLD); // 粗体
- style1.setFont(font);
- style1.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
- style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中
- // 合并单元格
- // first row (0-based) last row (0-based) first column (0-based) last
- // column (0-based)
- sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));
- sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));
- sheet.addMergedRegion(new CellRangeAddress(0, 0, 2, 7));
- sheet.addMergedRegion(new CellRangeAddress(0, 0, 8, 13));
- sheet.addMergedRegion(new CellRangeAddress(0, 0, 14, 16));
- sheet.addMergedRegion(new CellRangeAddress(0, 0, 17, 19));
- sheet.addMergedRegion(new CellRangeAddress(0, 0, 20, 24));
- sheet.addMergedRegion(new CellRangeAddress(0, 1, 25, 25));
- // 设置列宽度(像素)
- for (int i = 0; i < excelHeaderWidth.length; i++) {
- sheet.setColumnWidth(i, 32 * excelHeaderWidth[i]);
- }
- // 添加表格头
- for (int i = 0; i < excelHeader.length; i++) {
- HSSFCell cell = row.createCell(i);
- cell.setCellValue(excelHeader[i]);
- cell.setCellStyle(style);
- }
- row = sheet.createRow((int) 1);
- for (int i = 0; i < excelHeader1.length; i++) {
- HSSFCell cell = row.createCell(i);
- cell.setCellValue(excelHeader1[i]);
- cell.setCellStyle(style);
- }
注意点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导出Excel方法,导出内容是使用json传递,字段描述使用ArrayList数组传递,
本篇文章将详细介绍如何使用JAVA POI导出Excel。 一、准备工作 在开始编写代码前,确保已经添加了Apache POI库到项目的依赖管理中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
Java POI 是一个开源库...以上就是使用Java POI导出Excel 2007的实例源代码所涉及的主要知识点。通过这些步骤,开发者可以轻松地在Java程序中生成符合需求的Excel文件。在实际项目中,可以根据具体需求进行扩展和优化。
以下是一些关于如何使用Java POI导出Excel并触发浏览器下载的步骤: 1. **创建Workbook对象**: 首先,你需要创建一个Workbook对象,它是Excel文件的容器。根据你的Excel文件类型,可以选择HSSFWorkbook或...
这个是利用POI导出excel的源码,需要导入poi包,然后把jsp和action的代码拷贝进去就可以直接运行,很基础的代码,很适合初学者学习。 POI可以自己定义导出excel格式的数据,实例就是这样弄的,希望对初学者有帮助。
Java实现POI导出Excel是Java开发者常用的一种技术,用于生成和操作Microsoft Office Excel文件。在Java中,Apache POI库提供了对微软Office文档格式的支持,包括读取和写入Excel文件。这篇博客文章...
"java poi 导出excel jar包"这个主题,主要涉及的是如何在Java程序中使用POI库来生成Excel文件,并将相关的依赖jar包整合到项目中。 首先,我们需要理解Apache POI的工作原理。它提供了HSSF(Horrible Spreadsheet ...
在这个“POI导出Excel表格”的实例中,我们将深入探讨如何利用Apache POI进行Excel文件的导入与导出操作。 首先,我们需要在项目中集成Apache POI库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...
本教程将详细介绍如何使用JAVA POI库来创建一个包含图片的完整Excel导出功能。 首先,你需要在项目中引入Apache POI依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache....
提供的`导出EXCEL.docx`文档可能包含了使用POI导出Excel的代码示例。这个文档通常会详细解释每一步操作,包括如何读取数据、如何设置单元格格式以及如何保存文件。 8. **依赖安装** 要使用Apache POI,你需要在...
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是Java开发中常用的开源库,用于读写Microsoft Office文件格式,包括Excel、Word、PowerPoint等。今天,我们将介绍如何使用Java POI将图片导出到Excel中。 标题解释 ...
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...
通过以上步骤,我们成功地实现了使用Apache POI在Java中导出Excel文件,并实现了自动换行的功能。这种方式不仅可以提高工作效率,还能确保数据的准确性和完整性。 #### 六、注意事项与优化建议 - **兼容性问题**:...
在Java开发中,Apache POI库是处理Microsoft Office文件(如Word、Excel)的强大工具。本文将深入探讨如何使用Java POI生成带有货币格式的Excel文件,这在财务报告和其他需要精确货币显示的应用场景中尤为关键。 ##...