Apache POI 3.5 HSSF与XSSF Excel操作指南
需积分: 31 155 浏览量
更新于2024-07-29
收藏 1.36MB PDF 举报
"POI3.5_HSSF_和XSSF_Excel操作快速入门手册"
Apache POI 是一个流行的Java库,用于读取、写入和修改Microsoft Office格式的文件,尤其是Excel工作簿。HSSF是POI项目的一部分,专门用于处理老版的Excel文件格式(.xls),而XSSF则用于处理较新的XML-based Excel 2007格式(.xlsx)。本教程是针对POI 3.5版本的快速入门指南,旨在帮助开发者迅速掌握如何使用HSSF和XSSF进行Excel操作。
1. 添加POI支持
在项目中引入Apache POI库后,需要导入相应的包以使用HSSF和XSSF。通常,这包括`org.apache.poi.hssf.usermodel`和`org.apache.poi.xssf.usermodel`包。
2. 创建新工作簿
创建一个新的Excel工作簿可以使用`HSSFWorkbook`或`XSSFWorkbook`类。对于HSSF,使用`new HSSFWorkbook()`;对于XSSF,使用`new XSSFWorkbook()`。
3. 创建新sheet页
工作簿对象提供了创建新sheet的方法,如`HSSFWorkbook.createSheet(String sheetName)`和`XSSFWorkbook.createSheet(String sheetName)`。
4. 创建单元格
使用`Row.createCell(int index)`创建单元格,然后设置其值,如`cell.setCellValue(String value)`或`cell.setCellValue(double value)`。
5. 新建一个时间格式的单元格
创建日期单元格需要使用`CreationHelper`,通过`createDataFormat()`获取数据格式器,并设置单元格的数据类型为日期。
6. 处理不同内容格式的单元格
单元格有不同的数据类型,如字符串、数字、日期等,可以通过`CellType`枚举来设置和获取。
7. 遍历列和单元格
使用`Sheet.iterator()`遍历sheet,然后使用`Row.iterator()`遍历每一行,再用`Row.getCell(int index)`获取每个单元格。
8. 获得单元格内的内容
使用`Cell.getStringCellValue()`、`Cell.getNumericCellValue()`等方法获取单元格的值。
9. 文本提取
对于长文本,可能需要使用`Cell.getRichStringCellValue()`,它支持富文本格式。
10. 处理单元格边框
使用`CellStyle`对象设置单元格的边框,如`setBorderTop(BorderStyle.THIN)`,并指定颜色。
11. 填充色和颜色操作
通过`CellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND)`设置填充模式,用`setFillForegroundColor(IndexedColors.COLOR)`设置颜色。
12. 合并单元格
使用`Sheet.addMergedRegion(CellRangeAddress region)`合并单元格。
13. 字体的处理
`Font`对象允许设置字体样式,如`setFontName(String fontName)`、`setBold(boolean bold)`、`setFontColor(IndexedColors color)`。
14. 自定义颜色
通过`ExtendedColor`对象可以创建自定义颜色。
15. 读取和重写工作簿
使用`FileInputStream`打开现有工作簿,`WorkbookFactory.create(InputStream)`创建Workbook对象,完成修改后,使用`Workbook.write(OutputStream)`保存到输出流。
16. 在单元格中使用换行
使用`RichTextString`对象的`append(String str, boolean newLine)`方法插入换行。
17. 创建用户自定义数据格式
`Workbook.createDataFormat().getFormat(String format)`创建自定义数据格式。
18. Sheet页自适应页面大小
`Sheet.fitToPage()`可使内容适应打印页面大小。
19. 设定打印区域
使用`Sheet.setPrintArea(int startColumn, int endColumn, int startRow, int endRow)`定义打印范围。
20. 设置脚注页码
`Sheet.setFooter(String text, HeaderFooter.Font footerFont, int alignment)`在页脚中添加页码。
21. 使用便捷函数
POI提供了一些便捷方法,如`Row.createCellAndSetString(int index, String value)`,简化单元格创建和赋值。
22. 上下移动一行
`Row.moveRow(int oldRowNum, int newRowNum)`可以移动行。
23. 将sheet页设定为默认选中
`Sheet.setSelected(boolean selected)`设置sheet是否默认选中。
24. 设置sheet页放大倍率
`Sheet.setZoom(int numerator, int denominator)`调整显示比例。
25. 拆分和冻结窗格
`Sheet.createFreezePane(int colSplit, int rowSplit, int leftmostColumn, int topRow)`可以创建冻结窗口。
26. 重复列和行
`Sheet-repeatRows(int firstRow, int lastRow)`和`Sheet-repeatColumns(int firstCol, int lastCol)`实现列和行的重复。
27. 页眉和页脚
使用`Header`和`Footer`对象可以设置页眉和页脚的内容和样式。
28. 绘制图形
通过`Drawing`对象,可以创建形状,如`Drawing.createShape(ShapeType shapeType, ClientAnchor anchor)`,并设置其属性。
29. 设置图形样式
图形样式包括填充颜色、线条样式等,可通过`Shape`对象的相关方法设置。
以上是Apache POI 3.5版本中HSSF和XSSF进行Excel操作的基本知识点,这些内容将帮助开发者快速上手Excel文件的处理。
2013-08-18 上传
2020-11-23 上传
2011-01-17 上传
2023-03-14 上传
2023-06-09 上传
2023-05-01 上传
2023-06-06 上传
2023-05-22 上传
2023-05-31 上传
雪焰
- 粉丝: 0
- 资源: 2
最新资源
- wsn-(2).zip_matlab例程_matlab_
- RedisView:RedisView通过自定义的RESP协议解析,自定义的树模型和线程池,实现了开源,跨平台和高性能的Redis接口工具。 RedisView业余爱好通过自写RESP协议解析,自写树模型,线程池实现开源,跨平台,高级Redis界面图形化工具
- PyPI 官网下载 | tencentcloud-sdk-python-cfs-3.0.447.tar.gz
- TheSquirrelCafe:物联网松鼠喂食器
- ZDWW-OA:zdww-OA
- BMI计算器:BMI计算器
- powertabeditor:跨平台的吉他谱编辑器
- CTProjSim.zip_matlab例程_matlab_
- 参考资料-WI-NK0102档案分类及保管期限表.zip
- refactoring
- Tradedoubler for Publishers-crx插件
- KMV的MATLAB的代码-CarND-Behavioral-Cloning:CarND行为克隆
- BtShell-开源
- SigDigger:基于Qt的数字信号分析仪,使用Suscan内核和Sigutils DSP库
- x86.zip
- feedback:Laravel反馈请求包