这是本人在项目中遇到了一个导出数据时,如果该条数据中包含汉字,就会出现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相关推荐

  1. java大数据量导出csv文件并压缩

    java大数据量导出csv文件并压缩 java使用POI大数据量导出excel一般会存在以下几个问题: 一次从数据库查询出这么大数据,查询缓慢 查询数据量过大时会内存溢出 解决方案:分页查询数据,比如 ...

  2. 解决POI大数据导出Excel内存溢出、应用假死

    最近公司一个06年统计项目在导出Excel时造成应用服务器内存溢出.假死现象:查看代码发现问题一次查询一整年的数据导致堆内存被撑爆(假死),随后改用批量查询往Excel中写数据,同样的问题又出现了!! ...

  3. POI报表及百万数据导入导出方案

    1.POI报表的概述 1.1 需求说明 在企业级应用开发中,Excel报表是一种最常见的报表需求.Excel报表开发一般分为两种形式:为了方便操作,基于Excel的报表批量上传数据:通过java代码生 ...

  4. POI报表入门及百万数据报表导出和读取

    POI报表概述 需求说明 在企业级应用开发中,Excel报表是一种最常见的报表需求.Excel报表开发一般分为两种形式: 为了 方便操作,基于Excel的报表批量上传数据 通过java代码生成Exce ...

  5. 使用POI进行数据导出excel时的OOM服务挂掉,cpu飙升的问题

    在日常工作中,经常可能会使用到poi来进行数据导出,但是在导出的过程中,如果对poi类使用不当,则可能会出现一些问题,比较严重,下面对poi中三种不同的类来进行说明. 1. HSSFWorkbook( ...

  6. java操作Excel之POI(4)利用POI实现数据的批量导出

    后台导出方法: 1 /** 2 * 后台导出方法 3 * 利用POI实现数据的批量导出 4 */ 5 public String export() throws Exception{ 6 Connec ...

  7. 报表技术2(百万数据导入导出,POI操作word)

    POI模板导出,操作word 导出用户详情数据(图片,公式处理) 使用模板导出用户详细信息 使用模板引擎 1.编写模板引擎 2.使用模板引擎 百万数据导出 代码实现: 百万数据导入 步骤分析: 1.自 ...

  8. poi读取excel多层表头模板写入数据并导出

    poi读取excel多层表头模板写入数据并导出 这两天刚好写excel,写了一份自定义表头的,写了一份模板的,这里展示一份读取excel模板写入数据并导出的 //title excel的名称 head ...

  9. JAVA语言(POI数据导入导出Excel)

    POI数据导入导出Excel(样式可以自己设置) //----------------------------Controller层 --------------------------------- ...

最新文章

  1. 云主机启动提示Booting from Hard Disk GRUB
  2. Day3 python基础
  3. python爬取图片教程-推荐|Python 爬虫系列教程一爬取批量百度图片
  4. java基础:任意进制到十进制的转换
  5. java transient关键字
  6. python批量修改word特定位置的内容_利用python批量修改word文件名的方法示例
  7. Android中常见功能包描述
  8. oracle元数据到ods,将元数据存储到Jackrabbit存储库中
  9. Mysql5.1.36 autoinstall.sh
  10. mysql odbc.ini_ODBC连接mysql
  11. IT技术人终究要走上管理职位吗?
  12. [翻译]SQL Server 该做和不该做的
  13. [渝粤教育] 中国地质大学 计算机图形学(新) 复习题 (2)
  14. LLVM PASS类pwn题入门
  15. hadoop组件中的hive安装
  16. ocr 神经网络,神经网络crop
  17. matlab中加载数据方式,【转帖】Matlab数据导入方法
  18. 51单片机:8051指令简介
  19. 统计学 |辛普森悖论
  20. 配备透明触摸屏 看3D全息投影概念手机

热门文章

  1. Android项目中的assets和raw文件夹
  2. 请善用工具审核您的内核代码:)
  3. css样式重置,不建议用通配符
  4. Ubuntu 14.04 LTS, 64bit, cuda 7, Caffe环境配置编译和安装
  5. 编解码技术学习网站汇总
  6. 开源ImageFilter库v0.2:新增7类滤镜,支持12种图片效果
  7. 【译】Swift算法俱乐部-Boyer-Moore字符串搜索
  8. EntityFramework Core是否可以映射私有属性呢?了解一下。
  9. shell脚本编程学习之路-shell数组
  10. (1)51单片机NOP指令