很多时候,一个软件应用程序需要生成Microsoft Excel文件格式的报告。有时,一个应用程序甚至希望将Excel文件作为输入数据。例如,一个公司开发的应用程序将财务部门需要所有输出生成自己的Excel。

任何Java程序员愿意将MS Office文件的输出,可以使用预定义和只读API来做到。

什么是Apache POI?

Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件。这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库。它包含类和方法对用户输入数据或文件到MS Office文档进行解码。

Apache POI组件

Apache POI包含类和方法,来将MS Office所有OLE 2文档复合。此API组件的列表如下。

  • POIFS (较差混淆技术实现文件系统) : 此组件是所有其他POI元件的基本因素。它被用来明确地读取不同的文件。

  • HSSF (可怕的电子表格格式) : 它被用来读取和写入MS-Excel文件的xls格式。

  • XSSF (XML格式) : 它是用于MS-Excel中XLSX文件格式。

  • HPSF (可怕的属性设置格式) : 它用来提取MS-Office文件属性设置。

  • HWPF (可怕的字处理器格式) : 它是用来读取和写入MS-Word的文档扩展名的文件。

  • XWPF (XML字处理器格式) : 它是用来读取和写入MS-Word的docx扩展名的文件。

  • HSLF (可怕的幻灯片版式格式) : 它是用于读取,创建和编辑PowerPoint演示文稿。

  • HDGF (可怕的图表格式) : 它包含类和方法为MS-Visio的二进制文件。

  • HPBF (可怕的出版商格式) : 它被用来读取和写入MS-Publisher文件。

接下来主要介绍HSSF组件的使用,直接上代(gan)码(huo)

一、常用设置

// 生成Excel表格
HSSFWorkbook workBook = new HSSFWorkbook();

//新建sheet

HSSFSheet sheet = workBook.createSheet();

//设置列宽度自适应,i为列的序号,从零开始

for (int i = 0; i < colId; i++) {
sheet.autoSizeColumn(i, true);
}

// 定义样式
HSSFCellStyle contentStyle = workBook.createCellStyle();
HSSFFont contentFont = workBook.createFont(); // 定义字体
contentFont.setFontName("微软雅黑");//设置字体
contentFont.setFontHeightInPoints((short) 10);//设置字号
contentFont.setBold(true);//设置加粗
contentFont.setColor(HSSFColor.WHITE.index);//设置字体颜色
contentStyle.setFont(contentFont);
contentStyle.setAlignment(HorizontalAlignment.CENTER);//左右居中
contentStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中

HSSFCellStyle contentStyleTemp = workBook.createCellStyle();
contentStyleTemp.cloneStyleFrom(contentStyle);//克隆样式
contentStyleTemp.setFillForegroundColor(HSSFColor.HSSFColorPredefined.ROYAL_BLUE.getColor().getIndex());//背景色设置

二、自定义颜色

HSSFPalette 提供了两种方式来自定义颜色:

1, 修改已经存在的颜色对象的RGB值

代码如下,将ORANGE的颜色值修改为(255,204,153)

HSSFPalette customPalette = workbook.getCustomPalette();

customPalette.setColorAtIndex(HSSFColor.ORANGE.index, (byte) 255, (byte) 204, (byte) 153);

在修改后,再设置颜色为ORANGE时,将使用修改后的颜色值.

2, 通过RGB值添加一个颜色(有一定的限制)

代码如下, 添加一个颜色(153,204,255),返回一个HSSFColor对象.

HSSFPalette customPalette = workbook.getCustomPalette();

HSSFColor newColor = customPalette.addColor((byte) 153, (byte) 204, (byte) 255);

这样就得到新的颜色对象newColor,可使用之. (第2种方法的限制是在 使用时必须要有newColor对象的引用才行,而第1种方式则没这限制)

【Java POI】1、Java POI的使用的更多相关文章

  1. java写入excel文件poi

    java写入excel文件 java写入excel文件poi,支持xlsx与xls,没有文件自动创建 package com.utils; import java.io.File; import ja ...

  2. APACHE POI教程 --java应用程序用POI与Excel交互

    POI报表 --用POI与Excel交互 AURISOFT 第一章 POI简介 --Jakata Poi HSSF:纯java的Excel解决方案 在我们实际的开发中,表现层的解决方案虽然有多样,但是 ...

  3. Java 操作Excel 之Poi(第一讲)

    1.Poi 简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能.HSSF - 提供读写Micros ...

  4. C++读写EXCEL文件OLE,java读写excel文件POI 对比

    C++读写EXCEL文件方式比较 有些朋友问代码的问题,将OLE读写的代码分享在这个地方,大家请自己看.http://www.cnblogs.com/destim/p/5476915.html C++ ...

  5. 10、借助POI实现Java生成并打印excel报表(1)

    10.1.了解 Apache POI 实际开发中,用到最多的是把数据库中数据导出生成报表,尤其是在生产管理或者财务系统中用的非常普遍.生成报表格式一般是EXCEL或者PDF .利用Apache  PO ...

  6. Java读写Excel之POI超入门

    转自:http://rensanning.iteye.com/blog/1538591 Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给J ...

  7. Java读写Excel之POI超入门(转)

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.Apache POI ...

  8. Java 错误提示org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException

    java 操作excel文件 发布后报错 org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException XSS ...

  9. 【POI】java对excel的读写操作

    在工作中需要将mongo中的数据导出到excel中,所以根据需要学习了poi.以下为学习内容的总结: 1.POI是什么? poi是Apache团队开发的专门面对用java处理Excel文档的工具. 官 ...

  10. 【JAVA】使用Aphache poi操作EXCEL 笔记

    1 下载poi,地址 http://poi.apache.org/ 选择3.9版本. 2 刚开始尝试 把poi.jar放在D:\Program Files\java\jdk1.6.0_20\lib(不 ...

随机推荐

  1. 02-jQuery的选择器

    我们以前在CSS中学习的选择器有: 今天来学习一下jQuery 选择器. jQuery选择器是jQuery强大的体现,它提供了一组方法,让我们更加方便的获取到页面中的元素. 1.jQuery 的基本选 ...

  2. 利用python同步windows和linux文件

    写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,然后再利用网络copy,重复性很大,就想着能不能写一个小脚本帮我同步 逻辑:比对本地和服务器文件的 ...

  3. jdk8中关于操作集合的一些新特性,遍历和排序操作

    jdk8增加了不少新的东西,在集合操作这块,就有如 lamda表达式,stream,sort,optional等新的类,主要涉及遍历和排序等方面,新特性提升了不少性能,我们开发就是要拥抱新事物,守着老 ...

  4. Django用openLDAP做认证

    前言 之前有需求要做一个django+ldap用户管理的简单接口,研究了好几个模块,最后终于能实现django用ldap做用户认证了.也是自己的水平有限吧,做了好长时间,现在就和大家分享一下这个过程吧 ...

  5. 福大软工 · 第八次作业(课堂实战)- 项目UML设计(团队)

    Team information 队名: 彳艮彳亍团队 各成员短学号.名: 学号: 姓名: 本次博客链接: 041602209 黄毓明(临时队长)  https://www.cnblogs.com/m ...

  6. 推荐使用OpenLiveWriter在cnblogs上写的Blog

    这是我第一个使用OpenLiveWriter在cnblogs上写的Blog.不知道效果如何,但又很多功能我可以采用! 如表格功能:   Open Live Writer Write  on Web 优 ...

  7. HTK计算mfcc/filter_bank源码解析

    HTK计算mfcc/filter_bank源码解析 HTK可以用简单的 HCopy -C config -s scp 求取mfcc或者filter_bank 关于mfcc的原理在 http://my. ...

  8. Dynamic Programming | Set 2 (Optimal Substructure Property)

    正如我们在 Dynamic Programming | Set 1 (Overlapping Subproblems Property) 中讨论的那样,当一个问题具有以下2种性质时,建议使用动态规划来 ...

  9. MyBatis 源码分析 - SQL 的执行过程

    * 本文速览 本篇文章较为详细的介绍了 MyBatis 执行 SQL 的过程.该过程本身比较复杂,牵涉到的技术点比较多.包括但不限于 Mapper 接口代理类的生成.接口方法的解析.SQL 语句的解析 ...

  10. 建立一个类似于天眼的Android应用程序:第4部分 - 持久收集联系人,通话记录和短信(SMS)

    建立一个类似于天眼的Android应用程序:第4部分 - 持久收集联系人,通话记录和短信(SMS) 电话黑客android恶意软件编程黑客入侵linux 随着我们继续我们的系列,AMUNET应用程序变 ...