使用poi进行数据的导出Demo
这是本人在项目中遇到了一个导出数据时,如果该条数据中包含汉字,就会出现excel单元格的大小与期望的样式不一样,也是查找了半天,也没有发现哪里出的问题.
现将一个小Demo奉献在这里,可以在遇到使用poi导出数据时,可以用来进行参考.
使用的是Springboot+poi
引入的依赖就只有poi的依赖
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.16</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.16</version></dependency>
编写的测试类为:
package exercise.demo;import org.apache.poi.hssf.usermodel.*; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;import java.io.FileOutputStream;@RunWith(SpringRunner.class) @SpringBootTest public class DemoApplicationTests {@Testpublic void excelUtils() {/*** @see <a href="http://poi.apache.org/hssf/quick-guide.html#NewWorkbook">For more</a>*/// 创建新的Excel 工作簿HSSFWorkbook workbook = new HSSFWorkbook();// 在Excel工作簿中建一工作表,其名为缺省值, 也可以指定Sheet名称HSSFSheet sheet = workbook.createSheet();//HSSFSheet sheet = workbook.createSheet("SheetName");// 用于格式化单元格的数据HSSFDataFormat format = workbook.createDataFormat();// 创建新行(row),并将单元格(cell)放入其中. 行号从0开始计算.HSSFRow row = sheet.createRow((short) 1);// 设置字体HSSFFont font = workbook.createFont();font.setFontHeightInPoints((short) 20); //字体高度font.setColor(HSSFFont.COLOR_RED); //字体颜色font.setFontName("黑体"); //字体font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //宽度font.setItalic(true); //是否使用斜体 // font.setStrikeout(true); //是否使用划线// 设置单元格类型HSSFCellStyle cellStyle = workbook.createCellStyle();cellStyle.setFont(font);cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); //水平布局:居中cellStyle.setWrapText(true);// 添加单元格注释// 创建HSSFPatriarch对象,HSSFPatriarch是所有注释的容器.HSSFPatriarch patr = sheet.createDrawingPatriarch();// 定义注释的大小和位置,详见文档HSSFComment comment = patr.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short)4, 2, (short) 6, 5));// 设置注释内容comment.setString(new HSSFRichTextString("可以在POI中添加注释!"));// 设置注释作者. 当鼠标移动到单元格上是可以在状态栏中看到该内容.comment.setAuthor("Xuys.");// // 创建单元格HSSFCell cell = row.createCell((short) 1); // HSSFRichTextString hssfString = new HSSFRichTextString("Hello World!"); // cell.setCellValue(hssfString);//设置单元格内容 // cell.setCellStyle(cellStyle);//设置单元格样式 // cell.setCellType(HSSFCell.CELL_TYPE_STRING);//指定单元格格式:数值、公式或字符串 // cell.setCellComment(comment);//添加注释 // // //格式化数据 // row = sheet.createRow((short) 2); // cell = row.createCell((short) 2); // cell.setCellValue(11111.25); // cellStyle = workbook.createCellStyle(); // cellStyle.setDataFormat(format.getFormat("0.0")); // cell.setCellStyle(cellStyle); // // row = sheet.createRow((short) 3); // cell = row.createCell((short) 3); // cell.setCellValue(9736279.073); // cellStyle = workbook.createCellStyle(); // cellStyle.setDataFormat(format.getFormat("#,##0.0000")); // cell.setCellStyle(cellStyle);// sheet.autoSizeColumn((short)1); //调整第一列宽度 // sheet.autoSizeColumn((short)1); //调整第二列宽度 // sheet.autoSizeColumn((short)2); //调整第三列宽度 // sheet.autoSizeColumn((short)3); //调整第四列宽度try {FileOutputStream fileOut = new FileOutputStream("G:/3.xls");workbook.write(fileOut);fileOut.close();} catch (Exception e) {System.out.println(e.toString());}}}
直接放在测试类中运行这段代码就会在指定的文件中出现这个Excel文件.
转载于:https://www.cnblogs.com/qingmuchuanqi48/p/11286062.html
使用poi进行数据的导出Demo相关推荐
- java大数据量导出csv文件并压缩
java大数据量导出csv文件并压缩 java使用POI大数据量导出excel一般会存在以下几个问题: 一次从数据库查询出这么大数据,查询缓慢 查询数据量过大时会内存溢出 解决方案:分页查询数据,比如 ...
- 解决POI大数据导出Excel内存溢出、应用假死
最近公司一个06年统计项目在导出Excel时造成应用服务器内存溢出.假死现象:查看代码发现问题一次查询一整年的数据导致堆内存被撑爆(假死),随后改用批量查询往Excel中写数据,同样的问题又出现了!! ...
- POI报表及百万数据导入导出方案
1.POI报表的概述 1.1 需求说明 在企业级应用开发中,Excel报表是一种最常见的报表需求.Excel报表开发一般分为两种形式:为了方便操作,基于Excel的报表批量上传数据:通过java代码生 ...
- POI报表入门及百万数据报表导出和读取
POI报表概述 需求说明 在企业级应用开发中,Excel报表是一种最常见的报表需求.Excel报表开发一般分为两种形式: 为了 方便操作,基于Excel的报表批量上传数据 通过java代码生成Exce ...
- 使用POI进行数据导出excel时的OOM服务挂掉,cpu飙升的问题
在日常工作中,经常可能会使用到poi来进行数据导出,但是在导出的过程中,如果对poi类使用不当,则可能会出现一些问题,比较严重,下面对poi中三种不同的类来进行说明. 1. HSSFWorkbook( ...
- java操作Excel之POI(4)利用POI实现数据的批量导出
后台导出方法: 1 /** 2 * 后台导出方法 3 * 利用POI实现数据的批量导出 4 */ 5 public String export() throws Exception{ 6 Connec ...
- 报表技术2(百万数据导入导出,POI操作word)
POI模板导出,操作word 导出用户详情数据(图片,公式处理) 使用模板导出用户详细信息 使用模板引擎 1.编写模板引擎 2.使用模板引擎 百万数据导出 代码实现: 百万数据导入 步骤分析: 1.自 ...
- poi读取excel多层表头模板写入数据并导出
poi读取excel多层表头模板写入数据并导出 这两天刚好写excel,写了一份自定义表头的,写了一份模板的,这里展示一份读取excel模板写入数据并导出的 //title excel的名称 head ...
- JAVA语言(POI数据导入导出Excel)
POI数据导入导出Excel(样式可以自己设置) //----------------------------Controller层 --------------------------------- ...
最新文章
- 云主机启动提示Booting from Hard Disk GRUB
- Day3 python基础
- python爬取图片教程-推荐|Python 爬虫系列教程一爬取批量百度图片
- java基础:任意进制到十进制的转换
- java transient关键字
- python批量修改word特定位置的内容_利用python批量修改word文件名的方法示例
- Android中常见功能包描述
- oracle元数据到ods,将元数据存储到Jackrabbit存储库中
- Mysql5.1.36 autoinstall.sh
- mysql odbc.ini_ODBC连接mysql
- IT技术人终究要走上管理职位吗?
- [翻译]SQL Server 该做和不该做的
- [渝粤教育] 中国地质大学 计算机图形学(新) 复习题 (2)
- LLVM PASS类pwn题入门
- hadoop组件中的hive安装
- ocr 神经网络,神经网络crop
- matlab中加载数据方式,【转帖】Matlab数据导入方法
- 51单片机:8051指令简介
- 统计学 |辛普森悖论
- 配备透明触摸屏 看3D全息投影概念手机