`
Merrygrass
  • 浏览: 166568 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

POI学习

阅读更多
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学习笔记第二版更详细的POI学习笔记第二版更详细的

    excelpoi学习代码

    标题“excelpoi学习代码”表明我们将探讨如何使用Apache POI处理Excel文件。描述虽简洁,但暗示了我们将通过实际的代码示例来学习这一主题。 Apache POI提供了HSSF(Horizontally Stored Spreadsheet Format)和...

    POI 学习资料POI 学习资料POI 学习资料

    - 官方文档:Apache POI 提供了详尽的开发者指南和API文档,是学习的基础。 - 在线教程:许多网站提供 POI 教程,例如 Baeldung、Stack Overflow 等。 - 示例代码:GitHub 上有大量使用 POI 的开源项目,可以参考...

    POI学习笔记

    "POI学习笔记" POI(Apache POI)是一款流行的Java库,用于处理Microsoft Office文件格式,包括Excel、Word、PowerPoint等。POI提供了一个简洁和灵活的API,允许开发者轻松地读取、写入和操作Office文件。 POI的...

    Apache POI学习文档V2.0.md

    Apache POI学习文档V2.0.md

    excel读取,自动导出打包,poi学习文档

    通过学习Apache POI,开发者可以方便地在Java应用程序中集成Excel处理功能,无论是读取现有的数据,还是生成新的报表,都能大大提升工作效率。同时,自动导出和打包功能也使得数据分发变得更加便捷。如果你在实际...

    POI的学习笔记

    ### POI学习笔记知识点解析 #### 一、POI简介 Apache POI是一个开源的Java API,用于处理Microsoft Office格式的文件,包括Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx) 和 Word (.doc, .docx)。POI提供了一套...

    poi

    总的来说,这些文件集合提供了一个全面的Apache POI学习资源,从基础操作到高级特性和源码分析,适合初学者和有经验的开发者。通过深入学习和实践,开发者可以熟练掌握使用Java处理Office文件的技能。

    poi全家桶ooxml-schemas/poi/poi-examples/poi-ooxml/poi-ooxml-schemas/poi-scratchpad

    开发者可以通过这些例子学习如何创建、读取和修改Excel、Word和PowerPoint文档。 4. **poi-ooxml**: 这个模块专注于处理OOXML格式的文档,如新的Excel(.xlsx)、Word(.docx)和PowerPoint(.pptx)文件。它利用了...

    poi3.8快速学习指南

    poi3.8快速学习指南

    POI处理EXCEL和WORD文件的JAR包和资料

    总的来说,这个压缩包为开发者提供了一个全面的POI学习资源库,涵盖了从基本的Excel和Word文件操作到更复杂的读写和修改功能。通过学习这些教程和API文档,开发者可以熟练地在Java应用程序中集成POI,以处理和生成...

    poi的所有jar包,poi, poi-ooxml,poi-ooxml-schemas的各个版本jar

    - POI库的API设计相对复杂,学习曲线较陡峭,需要花时间去熟悉各种类和方法。 - 当处理复杂的公式或图表时,POI可能无法完全模拟Excel的所有特性,因此在某些情况下可能需要使用其他工具或库进行补充。 - 在更新版本...

    POI 中文学习文档(.doc)

    Apache POI 是一个Java库,专门用于读写Microsoft Office格式的文件,特别是Excel。在描述中提到的HSSF是POI中的一个接口,用于处理MSExcel的对象,这意味着它允许开发者在Java环境中创建、修改和读取Excel文件。...

    poi excel poi excel poi excel

    对于更深入的学习和了解 POI 的使用方法,可以参考以下资源: - **官方文档**:[http://jakarta.apache.org/poi/](http://jakarta.apache.org/poi/) - **HSSF 快速指南**:...

    poi源码学习__孔浩

    这个压缩包“poi源码和思维导图”包含了对Apache POI源代码的学习资料,以及可能的配套思维导图,对于深入理解POI的工作原理和开发技巧非常有帮助。 Apache POI的核心功能在于它允许Java开发者读写Microsoft Office...

    poi导入到eclipse

    在本文中,我们将学习如何将poi导入到eclipse中,并搭建好eclipse环境项目,以便更深一步地学习Java读取Microsoft Office的文件。 首先,需要下载poi的jar包。截至本文发表,poi最新版本是3.0.1,距离上一个Final...

    百度poi,高德poi数据数据免费下载

    在IT行业中,POI...免费下载的POI数据资源对于学习、研究或开发基于位置的服务非常有帮助,但使用时需要注意版权和合规性问题。通过理解并有效利用这些数据,开发者能够构建出更智能、更贴近用户需求的地图应用。

    poi2000-2003

    这个压缩包很可能是历年POI比赛的题目、数据集和部分解决方案的汇总,对于参赛者或对算法学习有兴趣的人来说是一份宝贵的学习资源。 描述中提到的“所有数据以及题目”,意味着包内包含了历年的比赛题目文本、输入...

    poi 生成pdf等

    **标题解析:** "poi 生成pdf等" 这个标题指的...使用者可以通过这个项目学习到如何在Java环境中实现文档格式的互换,以及将网页内容转化为静态文件。对于需要处理多种文档格式的开发者来说,这些都是非常实用的技能。

Global site tag (gtag.js) - Google Analytics