博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
公共POI导出Excel方法–java
阅读量:4575 次
发布时间:2019-06-08

本文共 3307 字,大约阅读时间需要 11 分钟。

最近做了一些数据Excel导出的功能,先是看了很多博客,然后发现都没有公用的方法,但是又发现好像每一次导出都需要写一些差不多类似的代码,后来找到一篇公共导出Excel的方法,,但是这位博主好像并没有完全公布出来,然后自己稍微研究了一下在他的源码基础上写了个公共的导出方法。有写的不好的地方大佬可以指点指点

maven依赖

org.apache.poi
poi
3.17
package com.tl.util;import java.io.IOException;import java.io.OutputStream;import java.net.URLEncoder;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletResponse;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFFont;import org.apache.poi.hssf.usermodel.HSSFRichTextString;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.BorderStyle;import org.apache.poi.ss.usermodel.CellType;import org.apache.poi.ss.usermodel.HorizontalAlignment;import org.apache.poi.ss.usermodel.VerticalAlignment;import org.apache.poi.ss.util.CellRangeAddress;public class ExportExcel {        //显示的导出表的标题    private String title;    //导出表的列名    private String[] rowName ;        private List
dataList = new ArrayList
(); HttpServletResponse response; //构造方法,传入要导出的数据 public ExportExcel(String title,String[] rowName,List
dataList){ this.dataList = dataList; this.rowName = rowName; this.title = title; } /* * 导出数据 * */ public void export(HttpServletResponse response) throws Exception{ try{ HSSFWorkbook workbook = new HSSFWorkbook(); // 创建工作簿对象 HSSFSheet sheet = workbook.createSheet(title); // 创建工作表 // 产生表格标题行 HSSFRow rowm = sheet.createRow(0); HSSFCell cellTiltle = rowm.createCell(0); //sheet样式定义【getColumnTopStyle()/getStyle()均为自定义方法 - 在下面 - 可扩展】 HSSFCellStyle columnTopStyle = this.getColumnTopStyle(workbook);//获取列头样式对象 HSSFCellStyle style = this.getStyle(workbook); //单元格样式对象 sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, (rowName.length-1))); cellTiltle.setCellStyle(columnTopStyle); cellTiltle.setCellValue(title); // 定义所需列数 int columnNum = rowName.length; HSSFRow rowRowName = sheet.createRow(2); // 在索引2的位置创建行(最顶端的行开始的第二行) // 将列头设置到sheet的单元格中 for(int n=0;n

这个导出用到的方法,组装数据的如下:

@RequestMapping("/outPartitionExcel")    public void outPartitionExcel(Partition partition,HttpServletResponse response) throws Exception {        List
Partitions = partitionService.findAllPartitionPage(partition); String title = "管理分区"; String[] rowsName = new String[] {"序号","分拣编码","定区编码","省份","城市","区(县)","关键字","起始号","终止号","单双号","操作人员","操作单位","操作时间"}; List
dataList = new ArrayList<>(); Object[] objs = null; for(int i=0; i

是通过组装一个List的类型(里面是一些列的导出数据,可以为String/int/long等全部数据类型)。数组rowsName是指导出数据的栏位名称,title是指导出excel的标题

和sheet名。

以以上的数据为例,导出的结果显示如下(只是做了简单的处理,有一些合并行与excel的样式问题没有涉及)

转载于:https://www.cnblogs.com/L546284162/p/9651705.html

你可能感兴趣的文章
hash冲突的解决方法
查看>>
Asp.Net webconfig中使用configSections的用法
查看>>
mysql 二进制日志
查看>>
阻止putty变成inactive
查看>>
TP框架代码学习 学习记录 3.2.3
查看>>
doc文档生成带目录的pdf文件方法
查看>>
js数组,在遍历中删除元素(用 for (var i in arr)是无效的 )
查看>>
通过前端上传图片等文件的方法
查看>>
在 OC 中调用 Swift 代码
查看>>
安卓|五大逆向软件下载
查看>>
5 OK6410裸机调试(不用Jlink)
查看>>
“模板”学习笔记(5)-----编译器在处理函数模板的时候都干了啥
查看>>
教你用shell写CGI程序
查看>>
窗口 对话框 Pop Dialog 示例
查看>>
ubuntu(centos) server安装vmware tools
查看>>
数据结构之最大不重复串
查看>>
为什么要配置sdk-tools/platform-toools?
查看>>
自己动手开发更好用的markdown编辑器-07(扩展语法)
查看>>
队列的循环队列
查看>>
程序中的日期格式
查看>>