POI之HSSF学习(二)
以前仅仅是对一个单元格设置值,没有涉及到格式的问题,我们可以设置丰富的格式,比如一个单元格的边框,字体,颜色,背景颜色等等,(这里有一个限制,就是对于一个单元格内还不能够写入丰富文本)。
在HSSF中专门有一个类来保存格式相关的信息HSSFCellStyle,得到一个风格描述HSSFCellStyle cs = workbook.createCellStyle();
对一个cell设置风格cell.setCellStyle(HSSFCellStyle)
在HSSFCellStyle中包括了字体,边框,颜色等信息。在HSSF中用到的字体类是不同于JAVA中的字体类的。
HSSFCellStyle cs = workbook.createCellStyle();//创建一个style
HSSFFont littleFont = workbook.createFont();//创建一个Font
littleFont.setFontName("SimSun");
littleFont.setFontHeightInPoints((short)7);
cs.setFont(littleFont);//设置字体
cs.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中
cs.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直举重
cs.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下边框
cs.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cs.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cs.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
我们经常有的一个操作就是合并单元格,在HSSF中合并单元格是如下的操作
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
HSSFRow row = sheet.createRow((short) 1);
HSSFCell cell = row.createCell((short) 1);
cell.setCellValue("This is a test of merging");
sheet.addMergedRegion(new Region(1,(short)1,1,(short)2));//指定合并区域
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
合并区域是分别指定起始和终了的列和行,都是从0开始
下面实现的方法来填充一个区域,可以指定style
public void fillMergedRegion(HSSFWorkbook workbook,HSSFSheet sheet, Region region, String text, HSSFCellStyle cs) {
setRegionStyle(workbook, sheet, region, cs);
HSSFRow row;
HSSFCell cell;
row = sheet.getRow(region.getRowFrom());
cell = row.getCell(region.getColumnFrom());
cell.setCellValue(text);
sheet.addMergedRegion(region);
}
public void setRegionStyle(HSSFWorkbook workbook, HSSFSheet sheet, Region region, HSSFCellStyle cs) {
int toprowNum = region.getRowFrom();
for (int i = region.getRowFrom(); i <= region.getRowTo(); i ++) {
HSSFRow row = HSSFCellUtil.getRow(i, sheet);
for (int j = region.getColumnFrom(); j <= region.getColumnTo(); j++) {
HSSFCell cell = HSSFCellUtil.getCell(row, (short)j);
cell.setCellStyle(cs);
}
}
}
要做到对一个区域设置style的话,应该对整个区域的cell都设定同样的style来达到目的。
还有一个比较重要的就是设置公式,可以让其自动来进行计算。在HSSF中设置公式是相当容易的,专门有一个方法
cell.setCellFormula(formula);
formula就是一个公式的字符串。
这里还有涉及到的一个坐标的转换问题,在HSSF中是使用行,列来进行,而excel中公式的使用是A1,AB2等等类似的方式。
下面的一个方法实现了坐标的转换。
public static String convertCoordinate(int row, short col) {
int a = col / 26;
int b = col % 26;
StringBuffer XS = new StringBuffer("");
if (a > 0 && a <=9) {
XS = XS.append((char)('@' + a));
}
XS.append((char)('A' + b));
return XS.toString() + (row + 1);
}
基本的操作也就如此,在使用过程中觉得有些不习惯的就是使用的长度单位,在有些方法里面是这个单位,有的方法里面又是另外一个单位,比较的混乱。
分享到:
相关推荐
POI学习笔记第二版更详细的POI学习笔记第二版更详细的
标题“excelpoi学习代码”表明我们将探讨如何使用Apache POI处理Excel文件。描述虽简洁,但暗示了我们将通过实际的代码示例来学习这一主题。 Apache POI提供了HSSF(Horizontally Stored Spreadsheet Format)和...
- 官方文档:Apache POI 提供了详尽的开发者指南和API文档,是学习的基础。 - 在线教程:许多网站提供 POI 教程,例如 Baeldung、Stack Overflow 等。 - 示例代码:GitHub 上有大量使用 POI 的开源项目,可以参考...
"POI学习笔记" POI(Apache POI)是一款流行的Java库,用于处理Microsoft Office文件格式,包括Excel、Word、PowerPoint等。POI提供了一个简洁和灵活的API,允许开发者轻松地读取、写入和操作Office文件。 POI的...
Apache POI学习文档V2.0.md
通过学习Apache POI,开发者可以方便地在Java应用程序中集成Excel处理功能,无论是读取现有的数据,还是生成新的报表,都能大大提升工作效率。同时,自动导出和打包功能也使得数据分发变得更加便捷。如果你在实际...
### POI学习笔记知识点解析 #### 一、POI简介 Apache POI是一个开源的Java API,用于处理Microsoft Office格式的文件,包括Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx) 和 Word (.doc, .docx)。POI提供了一套...
总的来说,这些文件集合提供了一个全面的Apache POI学习资源,从基础操作到高级特性和源码分析,适合初学者和有经验的开发者。通过深入学习和实践,开发者可以熟练掌握使用Java处理Office文件的技能。
开发者可以通过这些例子学习如何创建、读取和修改Excel、Word和PowerPoint文档。 4. **poi-ooxml**: 这个模块专注于处理OOXML格式的文档,如新的Excel(.xlsx)、Word(.docx)和PowerPoint(.pptx)文件。它利用了...
poi3.8快速学习指南
总的来说,这个压缩包为开发者提供了一个全面的POI学习资源库,涵盖了从基本的Excel和Word文件操作到更复杂的读写和修改功能。通过学习这些教程和API文档,开发者可以熟练地在Java应用程序中集成POI,以处理和生成...
- POI库的API设计相对复杂,学习曲线较陡峭,需要花时间去熟悉各种类和方法。 - 当处理复杂的公式或图表时,POI可能无法完全模拟Excel的所有特性,因此在某些情况下可能需要使用其他工具或库进行补充。 - 在更新版本...
Apache POI 是一个Java库,专门用于读写Microsoft Office格式的文件,特别是Excel。在描述中提到的HSSF是POI中的一个接口,用于处理MSExcel的对象,这意味着它允许开发者在Java环境中创建、修改和读取Excel文件。...
对于更深入的学习和了解 POI 的使用方法,可以参考以下资源: - **官方文档**:[http://jakarta.apache.org/poi/](http://jakarta.apache.org/poi/) - **HSSF 快速指南**:...
这个压缩包“poi源码和思维导图”包含了对Apache POI源代码的学习资料,以及可能的配套思维导图,对于深入理解POI的工作原理和开发技巧非常有帮助。 Apache POI的核心功能在于它允许Java开发者读写Microsoft Office...
在本文中,我们将学习如何将poi导入到eclipse中,并搭建好eclipse环境项目,以便更深一步地学习Java读取Microsoft Office的文件。 首先,需要下载poi的jar包。截至本文发表,poi最新版本是3.0.1,距离上一个Final...
在IT行业中,POI...免费下载的POI数据资源对于学习、研究或开发基于位置的服务非常有帮助,但使用时需要注意版权和合规性问题。通过理解并有效利用这些数据,开发者能够构建出更智能、更贴近用户需求的地图应用。
这个压缩包很可能是历年POI比赛的题目、数据集和部分解决方案的汇总,对于参赛者或对算法学习有兴趣的人来说是一份宝贵的学习资源。 描述中提到的“所有数据以及题目”,意味着包内包含了历年的比赛题目文本、输入...
**标题解析:** "poi 生成pdf等" 这个标题指的...使用者可以通过这个项目学习到如何在Java环境中实现文档格式的互换,以及将网页内容转化为静态文件。对于需要处理多种文档格式的开发者来说,这些都是非常实用的技能。