`
tendy
  • 浏览: 47785 次
  • 来自: ...
社区版块
存档分类
最新评论

poi、jexcel 使用经验

    博客分类:
  • java
阅读更多

有个需求是把 excel 文件转换成 pdf 格式

 

生成 pdf 文件使用 iText

读 excel 文件,开始是使用 POI

用起来不大习惯,例如颜色、字体都是用 short 类型表示

然后使用 HSSFWorkbook.getCustomPalette().getColor(index) 取颜色,

用 HSSFWorkbook.getFontAt(index) 取字体

不知在 excel 文件中,是用 RGB 定义颜色,还是也有一个 palette,然后用 index 定义颜色。

不过看 excel 2003 生成的 xml,表示颜色用的是 #RRGGBB 的格式,字体直接用字体名称表示

 

在 POI 3.0 之前的版本,读一个 excel 文件,有些颜色是custom palette 中没有的,例如 aotomatic(自动)。

在 3.0 里,HSSFColor 增加了颜色 AUTOMATIC,它的索引值是 0x40,返回的是黑色

另外还有一个颜色索引值 32767,在 custom palette 也是不存在的。

 

除了颜色和字体,对齐方式、字体的 style 也是用数字表示

不过好像字体的 style 也可以用 String 表示

 

我用的 POI 是2.5.1 版,还不支持公式和图像(3.0 版支持)

于是换 jExcel 2.6.x。

jExcel中,基本上属性都用对象表示,而不是像POI 那样给一个数字。

不明白 POI 为什么要用数字表示,是为了重用?节省内存?

在 xml 格式的 Excel 文件,所有 style 存放在 styles 区域,每种 style 有个 id

使用 style 的地方引用 style 的 id

POI 的做法是不是参考了这个呢?...

分享到:
评论

相关推荐

    jExcel学习帮助文档

    相较于Apache POI,jExcel具有更小的体积和更好的中文支持,使其成为处理用户上传的Excel模板的理想选择。这个库的核心功能被封装在8个主要的文件中,我们来详细了解一下这些功能。 首先,`IExcelWorkbook.java`是...

    POI与JXL的实战性能对比

    JXL和POI是两个广泛使用的库,它们各有优势和局限性。 **JXL(JExcel API)** 是一个较早出现的库,主要适用于处理早期版本的Excel文件(如Excel 95、97和2003),支持的功能包括读取和写入数据、设置单元格样式、...

    JExcelAPI与Apache POI两者对比

    JExcelAPI与Apache POI两者对比

    JEXCEL.jar

    在Java生态系统中,有多个类似的库,如Apache POI、JExcelApi、jOOQ的Excel模块等。每个库都有其特定的优势和使用场景,选择哪一个通常取决于具体需求,如性能、内存消耗、API易用性等因素。 在提供的压缩包文件...

    常用报表操作,itext_make_pdf,itext_make_word,jexcel_make_excel,poi_make_excel,pdf,Word,excel

    例如,你可以先使用数据库查询获取数据,然后利用Apache POI或JExcelApi生成Excel报表,接着使用iText将数据转化为PDF或Word格式,便于分发和打印。这些工具和库是IT专业人员日常工作中不可或缺的部分,它们极大地...

    Apache POI教程

    总的来说,Apache POI是一个强大且广泛使用的工具,适用于需要与Microsoft Office文件交互的Java开发者。无论是读取现有文件,还是创建新的报告,或者更新现有数据,Apache POI都提供了丰富的类和方法来实现这些需求...

    JExcel_API_2_6_12

    JExcel API可以与其他Java库结合使用,如Apache POI,以增强功能。例如,当需要处理更复杂的Excel文件或进行更高级的操作时,可以利用POI库的额外功能。 总的来说,JExcel API 2.6.12是Java开发中处理Excel文件不可...

    JExcel API

    JExcel API的基本使用 JExcel API主要包含三个核心类:`Workbook`,`Sheet`和`Row`。`Workbook`代表整个Excel工作簿,`Sheet`代表工作簿中的单个工作表,而`Row`则代表工作表中的一行数据。你可以通过这些类来创建...

    jexcel api,jxl 源代码

    此外,由于它只支持老版本的 Excel 格式(.xls),对于新的 .xlsx 格式,可能需要使用 Apache POI 或其他库。 10. **官方文档与社区支持** 官方网站提供了详细的 API 文档和一些示例代码,可以帮助开发者快速上手...

    项目之后对jxl(jexcel)的总结

    【JXL库详解】 JXL库是一个用于Java平台的开源库,主要用于读写...需要注意的是,由于JXL库主要针对Excel 97-2003格式,对于现代的.xlsx格式支持有限,对于新版本的Excel文件操作,可能需要考虑使用Apache POI库。

    Apache POI教程.docx

    Apache POI 是一个开源的 Java 库,专为处理 Microsoft Office 文件格式而设计,由 Apache Software ...Apache POI 的广泛使用和持续更新确保了它在 Java 社区中的重要地位,是处理 Office 文件格式的首选库之一。

    jexcel (jxl)

    标题"jexcel (jxl)"指的是一个Java库,它允许开发者在JSP(JavaServer Pages)中处理Excel文件。jExcelAPI(通常简称为jxl)是一个开源项目,提供了读取、写入和修改Microsoft Excel文件的能力。在描述中提到,当...

    jexcel:基于JAVA的依赖POI包装的EXCEL读写组件

    版本信息 V1.0.2 1.【BUG】修复 WritableExcel 写出 EXCEL 文档对象属性为null时抛出的异常 V1.0.1 1.校验接口添加获得校验失败原因方法,修复 ReadableExcel 校验文档内容不通过... <artifactId>jexcel</artifactId>

    spring-batch-excel:Spring Batch扩展,其中包含Excel的ItemReader实现。 提供对JExcel和Apache POI的支持

    为了减少内存占用,可以使用StreamingXlsxItemReader ,这只会将当前行保留在内存中,然后将其丢弃。 在流式传输XLSX文件时,并非所有功能都受支持,可能是公式未求值或导致错误。 PoiItemReader配置 除了的需要...

    neoHort iText&OpenPdf&JExcel&ApachePOI:neoHort:基于Java PDF&XLSX运行时生成器的iText&JExcelAPI&Apache POI-开源

    基于:iText 2.1.7,OpenPdf,JExcelAPI,POI库。 基于Xml的输入源,带有集成的WebJava环境对象。 包括动态标签的结构。 演示...

    jexcelapi

    - 由于jExcelApi不支持.xlsx格式(基于OpenXML标准),对于这种格式的文件,可以考虑使用Apache POI或其他兼容的库。 总结来说,jExcelApi是Java开发中处理Excel文件的一个强大工具,它提供了丰富的API来满足各种...

    Java操作Excel工具包

    为了避免内存溢出,可以使用POI的SXSSF API,它采用流式处理,只保留一部分数据在内存中。此外,确保正确关闭工作簿和输入/输出流,以避免资源泄露。 总结来说,Java中的Excel操作主要依赖于Apache POI和JExcelApi...

    jxls 读写Excel

    在提供的压缩包文件中,`sql.txt`可能是用于演示数据获取的SQL查询,而`jxls-poi`可能是一个包含jxls处理示例的Java项目,使用了Apache POI库来处理Excel文件。你可以参考博客链接...

    JAVA读取Excel

    JExcel支持.xls和.xlsx两种格式,无需像使用Apache POI那样深入了解Excel的内部结构。 要开始使用JExcel,首先需要将JExcel库添加到项目依赖中。如果是Maven项目,可以在pom.xml文件中添加如下依赖: ```xml ...

    neoHort5 iText (v.5.*)&JExcel&ApachePOI:neoHort:基于Java PDF&XLS运行时生成器的iText(v.5。*)&JExcelAPI ..-开源

    *演示https ://neohort4ape.appspot.com GitHub https://github.com/surban1974/neohort Maven Neohort-mvn-repo https://github.com/surban1974/neohort/raw/mvn-repo/ 真的总是com.github.surban1974.neohort neoHort5 5.2.8 com.github.surban1974.neohort neoHort5-poi...

Global site tag (gtag.js) - Google Analytics