使用Apache的POI相关API导出Excel设置单元格格式

栗子,一下各个代码之间的变量是通用的,要是在某个代码块中找不到某个变量,则可以向上找寻

准备工作

InputStream = template//文件输入流

XSSFWorkbook wb = new XSSFWorkbook(template);

Sheet sheet = wb.getSheetAt(0);

设置单元格格式

XSSFCellStyle cellStyle = wb.createCellStyle();//初始化单元格格式对象

cellStyle.setAlignment(CellStyle.ALIGN_GENERAL);//设置水平对齐方式,有多种对齐方式,如果你稍微了解一点英文也能知道:Alignment(水平)、ALIGN_LEFT(左对齐)

cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//设置垂直对齐方式,Vertical(垂直)

XSSFDataFormat dataFormat = wb.createDataFormat();//创建格式化对象

cellStyle.setDataFormat(dataFormat.getFormat("#,##0.00"));//设置数值类型格式为保留两位小数

cellStyle.setFillBackgroundColor(IndexedColors.PINK.getIndex());;//设置单元格背景色为骚粉

cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);//改用指定模式填充单元格颜色(主要用于使你设置的颜色生效以及生效方式)

cellStyle.setWrapText(true);//开启自动换行

Row excelRow = sheet.createRow(0);//创建单元行,索引从0开始

excelRow.setHeightInPoints(30);//设置行高

sheet.setColumnWidth(i, 256 * 15);//设置某列的列宽,列号为“i”

Cell cell = excelRow.createCell(0);//创建单元格,索引从0开始

cell.setCellStyle(cellStyle);// 设置单元格格式

创建各种类型单元格

// 创建数字类型的单元格

Cell cell = row.createCell((short)0);

cell.setCellValue(1);

row.createCell(1).setCellValue(1.2);

//创建单元格并接设置值为简单字符串

row.createCell(2).setCellValue("This is a string cell");

//创建单元格并接设置值为富文本

RichTextString str = creationHelper.createRichTextString("Apache");

Font font = wb.createFont();

font.setItalic(true);

font.setUnderline(Font.U_SINGLE);

str.applyFont(font);

row.createCell(3).setCellValue(str);

//创建boolean类型的单元格

row.createCell(4).setCellValue(true);

//创建单元格,当前单元的值是通过公式得到的 formula

row.createCell(5).setCellFormula("SUM(A1:B1)");

//创建日期类型的单元格并接进行格式化

CellStyle style = wb.createCellStyle();

style.setDataFormat(creationHelper.createDataFormat().getFormat("m/d/yy h:mm"));

cell = row.createCell(6);

cell.setCellValue(new Date());

cell.setCellStyle(style);

//创建超链接类型的单元格

cell.setCellFormula("HYPERLINK(\"http://baidu.com\",\"baidu\")");

创建单元格注释

CreationHelper factory = wb.getCreationHelper();

Cell cell = sheet.createRow(1).createCell(1);//创建第二行第二列的单元格

Drawing drawing = sheet.createDrawingPatriarch(); //创建顶层DrawingPatriarch,用于添加图形或图表(通常会覆盖原有效果)

ClientAnchor anchor = factory.createClientAnchor(); //创建ClientAnchor,使用此对象将工程图对象放置在工作表中

Comment comment = drawing.createCellComment(anchor); //创建注释

RichTextString text = creationHelper.createRichTextString("flydoging's demo");

Font font = wb.createFont(); //创建字体用于设置注释字体格式

font.setFontName("Arial");

font.setFontHeightInPoints((short)14);

font.setBoldweight(Font.BOLDWEIGHT_BOLD);

font.setColor(IndexedColors.RED.getIndex()); //设置红色字体

text.applyFont(font);

comment.setString(text);//设置注释体

comment.setAuthor("flydoging");//设置作者

cell.setCellComment(comment);

CreationHelper是个啥,官方文档

An object that handles instantiating concrete classes of the various instances one needs for HSSF and XSSF. Works around a limitation in Java where we cannot have static methods on interfaces or abstract classes. This allows you to get the appropriate class for a given interface, without you having to worry about if you’re dealing with HSSF or XSSF.

英文不太好,大概意思是说:你可以使用CreationHelper的创建各种用于HSSF、XSSF实例化的对象,通过它的API也可以发现:创建富文本、超链接等等。其实你通过上边wb创建的是HSSFCreationHelper, SXSSFCreationHelper, XSSFCreationHelper三个其中之一,具体是哪个取决于你使用的WorkBook。

获取文档的嵌入文件

public static void main(String[] args) throws Exception {

XSSFWorkbook workbook = new XSSFWorkbook(args[0]);

for (PackagePart pPart : workbook.getAllEmbedds()) {

String contentType = pPart.getContentType();

// Excel Workbook - either binary or OpenXML

if (contentType.equals("application/vnd.ms-excel")) {//offic 2003 excel

HSSFWorkbook embeddedWorkbook = new HSSFWorkbook(pPart.getInputStream());

}

// Excel Workbook - OpenXML file format

else if (contentType.equals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) {//offic 2007 excel

XSSFWorkbook embeddedWorkbook = new XSSFWorkbook(pPart.getInputStream());

}

// Word Document - binary (OLE2CDF) file format

else if (contentType.equals("application/msword")) {//offic 2003 word

HWPFDocument document = new HWPFDocument(pPart.getInputStream());

}

// Word Document - OpenXML file format

else if (contentType.equals("application/vnd.openxmlformats-officedocument.wordprocessingml.document")) {

XWPFDocument document = new XWPFDocument(pPart.getInputStream());

}

// PowerPoint Document - binary file format

else if (contentType.equals("application/vnd.ms-powerpoint")) {

HSLFSlideShow slideShow = new HSLFSlideShow(pPart.getInputStream());

}

// PowerPoint Document - OpenXML file format

else if (contentType.equals("application/vnd.openxmlformats-officedocument.presentationml.presentation")) {

OPCPackage docPackage = OPCPackage.open(pPart.getInputStream());

XSLFSlideShow slideShow = new XSLFSlideShow(docPackage);

}

// Any other type of embedded object.

else {

System.out.println("Unknown Embedded Document: " + contentType);

InputStream inputStream = pPart.getInputStream();

}

}

}

java导出excel表格设置行高,POI导出Excel设置单元格格式相关推荐

  1. java读取合并单元格_Java POI常用方法,读取单元格的值,设置单元格格式,合并单元格,获取已合并的单元格,导出至本地等...

    一.设置单元格格式. 设置单元格边框.单元格背景颜色.单元格对齐方式.单元格字体,设置自动换行. /** Description: 设置单元格格式. * @author : ys. * @date : ...

  2. 支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

    Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人 ...

  3. 在EXCEL表格中经常会遇到有合并单元格时,汇总计算的公式无法直接下拉自动填充计算,掌握这个小技巧一键汇总

    在EXCEL表格中经常会遇到有合并单元格时,汇总计算的公式无法直接下拉自动填充计算,掌握这个小技巧一键汇总 目录 在EXCEL表格中经常会遇到有合并单元格时,汇总计算的公式无法直接下拉自动填充计算,掌 ...

  4. java 中使用excl与设置单元格格式

    1.pom依赖文件 <poi.version>3.14</poi.version><!-- https://mvnrepository.com/artifact/org. ...

  5. POI 设置单元格格式,单元格合并,自动列宽等

    POI 设置单元格格式,单元格合并,自动列宽等 设置单元格样式 设置单元格背景 设置单元格合并 解决合并单元格遗留空白边框问题 设置单元格列宽自适应 设置单元格样式 第一种:日期格式 cell.set ...

  6. datagridview单元格合并居中_系统地学习Excel第17课,设置单元格格式

    上一篇:系统地学习Excel第16课,使用Excel的「替换」功能 本篇内容结构如下: 本章的知识体系 Excel工作表的整体外观由各个单元格的样式构成,单元格的样式外观在Excel的可选设置中主要包 ...

  7. 复杂的POI导出Excel表格(多行表头、合并单元格)

    poi导出excel有两种方式: 第一种:从无到有的创建整个excel,通过HSSFWorkbook,HSSFSheet HSSFCell, 等对象一步一步的创建出工作簿,sheet,和单元格,并添加 ...

  8. java poi设置单元格格式为数值_java中导出excel设置单元格的样式为数字格式怎么设置_Java代码实现设置单元格格式...

    java中导出excel设置单元格的样式为数字格式怎么设置 如果是使用poi,它会自动根据参数值设置单元格为恰当格式,只需传入数字类型参数值即可,比如 double value=....; cell. ...

  9. html导出excel合并单元格,JS导出EXCEL,动态设置单元格格式,合并单元格(横向或纵向)等操作...

    参考链接: https://blog.csdn.net/weixin_33724046/article/details/89611397 https://www.cnblogs.com/lvsk/p/ ...

最新文章

  1. 如何设置使windows(dos)命令中目录和文件可以自动完成和补齐
  2. C++指针地址内存,数据结构,文件操控
  3. GDB 远程调试Linux (CentOS)
  4. VS2012手动关联xaml与CS文件
  5. 阿里大文娱:不存在“优酷自制团队转入阿里影业”一说
  6. ncurses窗口机制:newwin(),wprintw(),delwin(),box(),wborder(),
  7. sql安装程序初始化_SQL Server安装程序–即时文件初始化(IFI)
  8. linux 如何选择新的内核,如何更新内核??__boot_内核_vmlinuz_linux_System__169IT.COM
  9. ArcView 9.3 安装帮助指南(针对Student Edition-One-Year版本)
  10. Xshell5远程连接Linux工具设置
  11. 微信小程序实现微信企业付款到零钱功能的流程
  12. vue音乐卡住_大神教你解决vue怎么添加音乐【突破措施】
  13. GS企业管理软件运用
  14. 牛散NO.2:MACD西施说风情,柳下惠高位勿迷情
  15. 应用计算机测定线性电阻伏安特性实验结论,电路分析实验报告(电阻元件伏安特性的测量)...
  16. rust被禁播还能玩吗_被强制下架的5部剧,后2部因“尺度太大”被禁播,如今已恢复上架...
  17. 微信 php 地图定位,微信公众号定位地图位置写入数据库,再显示地图的方法
  18. 工业大数据平台软件需求分析
  19. 关于应用~试玩,你想知道的都在这儿了----超详细总结(上篇)
  20. Github Actions Self-Hosted 本地运行Actions

热门文章

  1. php grid 分页,jqGrid分页pager配置
  2. 这道用椰子汁制作的甜品 让你重新找到在海边避暑的感觉
  3. java api是什么意思?
  4. bjui关闭当前页及弹窗层,刷新当前页及弹窗层
  5. 逆战ds服务器怎么修复,【群晖 DS418play 4盘位NAS网络存储服务器使用总结】更换|存储池|修复_摘要频道_什么值得买...
  6. 读书笔记:《了不起的盖茨比》
  7. 「热图」ComplexHeatmap展示单细胞聚类
  8. java面试 自身优缺点_面试总结之JAVA
  9. 查看windows 10激活状态
  10. Zotero 的下载与配置(综合版)