开发者社区> zhuyuansj> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

java POI操作execel导出

简介: 最近项目当中在使用POI将数据填充置row和cell等行和列,最后导出成execel到前端。一开始使用的方式是一个个去赋值,但是这样做有点麻烦,代码也有点长,不太好维护。
+关注继续查看

最近项目当中在使用POI将数据填充置row和cell等行和列,最后导出成execel到前端。一开始使用的方式是一个个去赋值,但是这样做有点麻烦,代码也有点长,不太好维护。于是换了种方案,先导入固定模板,然后将要添加数据的那部分动态添加过去并且进行填充,这样做的好处有利于后期的维护和可扩展,模板可以随时换。在这过程中也学到了不少POI方面的知识。下面总结一下.

  HSSFWorkbook与xssfworkbook的区别:前者只支持xls(2003)的表格,后者支持xlsx(2007)的表格

我这里主要介绍HSSFWorkbook,

以下是HSSFWorkBook常用代码

Workbook workBook=new HSSFWorkbook();//工作簿        定义一个新工作簿
Sheet sheet = workBook.createSheet("第一个sheet页"); //工作表       表创建一个sheet工作表  
Row row = sheet.createRow(0); //行       下标从0开始,0代表创建第一行,1代表创建第二行
Cell cell = row.createCell(0); //单元格    创建一个单元格,0代表第一个,1代表第二个
Cell cell = row.createCell(1);//在第一行中创建第二个单元格,也就是第一行,第二列
cell.setCellValue(1);   //给单元格设置值,当然设置数字,string都行,8大基本数据类型设置都可以,new Data日期也可以
----------合并单元格-----------------------------------------------------------------------
  Cell cell=row.createCell(1);
        cell.setCellValue("单元格合并测试");
        sheet.addMergedRegion(new CellRangeAddress(
                1, // 起始行
                2, // 结束行
                1, // 其实列
                2  // 结束列
        ));
----------合并单元格---------------------------------------------------------------
<!-- poi execel要引入的包 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<!-- poi execel要引入的包 -->

由于输出到execel的时候,如果一下子导出到execel当中的话,有的时候很难看清问题,可以复制一个row,然后输出一次流,再进行查看。

FileOutputStream fileOut1 = null;
try {
    fileOut1 = new FileOutputStream(saveFileName);
    workbook.write(fileOut1);
    fileOut1.close();
    fileOut1.flush();
}catch (Exception e){

}
System.out.println("查看表格");

遇到的一个坑.模板导入后写入数据一切OK,但是导出的xls文件有几十兆,打开以后直接保存一下,文件又变成几十KB,但是这个非常影响性能,经过调试发现,我的sheet1里面row复制完继续在sheet1里操作,我理解的时候可能被当做sheet间的复制了,所以我createSheet了以后,把sheet1的内容复制到新建的sheet后就没这问题了。

相关文章推荐:索引链接
自己写的POIUtil,主要解决从不同的HSSFWorkbook复制sheet以及根据单元格插入图片等
Excel动态合并行、合并列
Java Web利用POI导出Excel简单例子
POI 方式导出文件,浏览器(适用Edge浏览器)文件名乱码解决
POI使用详解
java 实现 excel sheet 拷贝到另一个Excel文件中 poi

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
重构:以Java POI 导出EXCEL为例2
前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数。这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等。 上一篇博文地址:http://www.cnblogs.
1121 0
重构:以Java POI 导出EXCEL为例
重构 开头先抛出几个问题吧,这几个问题也是《重构:改善既有代码的设计》这本书第2章的问题。 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的了解重构的意义。
1189 0
【JAVA秒会技术之玩转图片】图片下载和等比或指定大小压缩快速实现
JAVA图片下载和等比或指定大小压缩工具类 话不多,直接上代码: package com.netease.test; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt
2155 0
Jackcard相似度和余弦相似度(向量空间模型)的java实现
版权声明:本文为博主原创文章,地址:http://blog.csdn.net/napoay,转载请留言。 总结Jackcard相似度和余弦相似度。
1058 0
Java并发指南9:AQS共享模式与并发工具类的实现
这位大侠,这是我的公众号:程序员江湖。 分享程序员面试与技术的那些事。 干货满满,关注就送。  一行一行源码分析清楚 AbstractQueuedSynchronizer (三) 转自:https://javadoop.com/post/AbstractQueuedSynchronizer-3 这篇文章是 AQS 系列的最后一篇,第一篇,我们通过 ReentrantLock 公平锁分析了 AQS 的核心,第二篇的重点是把 Condition 说明白,同时也说清楚了对于线程中断的使用。
992 0
Java使用OpenCV3.2实现视频读取与播放
Java使用OpenCV3.2实现视频读取与播放 OpenCV从3.x版本开始其JAVA语言的SDK支持视频文件读写,这样就极大的方便了广大Java语言开发者学习与使用OpenCV,通过摄像头或者视频文件读取帧的内容与播放,完成视频内容分析与对象跟踪等各种应用开发任务。
1943 0
将c++静态库实现二次封装供java调用
工作中常常作为c++开发者,常常需要与java开发人员进行对接,或者他们看重了一些很好的c++库想借用,就需要将这些已有的开发可进行二次封装给java开发调用 首先需要从官网下载jdk并安装,例如本人的安装路径:C:\software\java\jdk1.
959 0
Java实现全排列、组合算法
Java实现全排列、组合算法
9736 0
剑指offer Java实现
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/68935922 剑指offer Java实现 代码地址如下: https://github.
765 0
java多线程 -- 创建线程的第三者方式 实现Callable接口
Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。
671 0
+关注
zhuyuansj
后端你别闹,热爱编程,热爱运营,热爱自媒体,性别男,爱好女.兴趣爱好广泛,旅游,唱歌,噶赛无.欢迎随时撩我.
75
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载