xssf

Apache-Poi-XXE-Analysis漏洞分析

天大地大妈咪最大 提交于 2021-02-17 07:07:04
No.1 声明 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。 No.2 概述 apache poi 这个组件实际上在 java 应用中蛮常见的,这个组件主要用在 word 文档或者 excel 文件导入的业务场景下使用。众所周知,这些文档实际上也是一个类似压缩包一类的存在,所以今天就看看这个东西。 No.3 漏洞分析 CVE-2014-3529 apache poi 在3.10.1之前存在XXE漏洞 漏洞场景搭建 测试代码 import org.apache.poi.EncryptedDocumentException;import org.apache.poi.openxml4j.exceptions.InvalidFormatException;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.ss.usermodel

Renaming headers of XSSFTable with Apache Poi leads to corrupt XLSX-file

二次信任 提交于 2021-02-09 18:06:02
问题 I am trying to rename headers of an existing xlsx-file. The idea is to have an excel-file to export data from XML to excel and reimport the XML once some user has made adjustments. At the moment we have created a "template" xlsx-sheet with Excel which already contains a sortable table (XSSFTable in poi) and a mapping to a XSD-source. Then we import it via POI, map XML data into it and save it. To adjust the sheet to the users we want to translate the headers/column-names of this existing

Renaming headers of XSSFTable with Apache Poi leads to corrupt XLSX-file

怎甘沉沦 提交于 2021-02-09 18:00:57
问题 I am trying to rename headers of an existing xlsx-file. The idea is to have an excel-file to export data from XML to excel and reimport the XML once some user has made adjustments. At the moment we have created a "template" xlsx-sheet with Excel which already contains a sortable table (XSSFTable in poi) and a mapping to a XSD-source. Then we import it via POI, map XML data into it and save it. To adjust the sheet to the users we want to translate the headers/column-names of this existing

How to transpose sheet with POI SS/XSSF?

青春壹個敷衍的年華 提交于 2021-02-07 13:48:03
问题 I am using POI XSSF API and I would like to transpose a sheet. how can I do that? Thanks. 回答1: Transpose, as in swap A2 with B1 and A3 with C1 (so columns become rows)? If so, there's nothing built in, so you'd need to do a little bit of coding yourself. You'd likely want to grab a pair of cells, save the contents of one (value and style), copy the second to the first, then overwrite the second. See the quick guide if you're not sure on all the reading/writing parts. 回答2: I was looking for

How to transpose sheet with POI SS/XSSF?

浪子不回头ぞ 提交于 2021-02-07 13:46:27
问题 I am using POI XSSF API and I would like to transpose a sheet. how can I do that? Thanks. 回答1: Transpose, as in swap A2 with B1 and A3 with C1 (so columns become rows)? If so, there's nothing built in, so you'd need to do a little bit of coding yourself. You'd likely want to grab a pair of cells, save the contents of one (value and style), copy the second to the first, then overwrite the second. See the quick guide if you're not sure on all the reading/writing parts. 回答2: I was looking for

How do I convert an area in an Excel doc to a table using Apache POI?

巧了我就是萌 提交于 2021-01-28 05:35:47
问题 I've written an application that fetches data from a database and creates an Excel doc from said data using the XSSF classes in the Apache POI library. I've imported poi, poi-ooxml, and poi-ooxml-schemas, all version 4.1.0. The file gets written fine and there are no errors when opening the file until I uncomment the table creation code, which I'll paste below: CellReference topLeft = new CellReference(sheet.getRow(3).getCell(0)); CellReference bottomRight = new CellReference(sheet.getRow

SpringBoot实现POI报表操作

被刻印的时光 ゝ 提交于 2021-01-17 10:35:20
POI报表入门 在mymes管理系统中,人员管理,订单等操作需要报表的导入导出等逻辑。需求看是复杂,实际上就是对数据库表的基本操作,本文介绍Excel的导出,下次介绍数据的导入 POI报表的概述 需求数码 在企业应用开发中,Excel报表是一种最常见的报表需求。Excel报表开发一般有两种方式: 为了方便操作,基于Excel的报表批量的上传数据 通过Java代码生成Excel报表 Excel两种形式 目前Excel存在两个版本Excel2003和Excel2007以上的版本,两者之间区别: 常见的Excel操作工具: Java中常见的EXCEL操作方式有两种:jxl和poi。 JXL只能对EXCEL进行操作,构架较老,只支持Excel95-2000版本,现在以及停止更新维护 POI是apache项目,可以对微软Word,EXCEL,PPT进行操作,,包括office2003和2007,poi一直在更新,所有比较主流 POI入门操作 POI环境搭建 <!--POI Excel--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.apache.poi<

一个excel(20M)就能干趴你的poi,你信吗?

纵然是瞬间 提交于 2021-01-15 06:04:54
  自从上一篇: 一个普通类就能干趴你的springboot,你信吗? 后,很巧的是这次又发现一个问题,所以有了这篇文章,还是想沿用上篇的”流水帐“的方式查找问题和解决问题。这篇文章主要是因为使用POI导入一个20M的excel发生了OOM(OutOfMemoryError)异常。说来也惭愧,工作了这么多年,还真没导入过这种大小的文件,并且还发生了内存溢出。如果你百度下基本上清一色的告诉你:POI导入excel文件有两种方式,第一种是用户模式,这种模式用起来很简单直观,可以类比xml的dom方式解析(这里只针对excel2007,因为2003本身就有最大条数限制并且目前基本用的很少,这里直接忽略),第二种是event模式,这种通常是网上说的解决POI导入大excel的”万金油“方法,可以类比为xml的sax解析方式。呵呵,我这篇文章首先就是要干趴这种方法 (JVM使用-Xms512m -Xmx512m) 。不信你随便写一个导入接口,导入如下20M大小的execl看看:链接: https://pan.baidu.com/s/1DUrS8ctLPp7Z6imOc1aIUQ 提取码: hd79 。   首先,既然要导入大点的excel2007,那么我们应该稍微了解一下这种文件如何存储数据,我们百度上可以发现,2007其实就是一个压缩包,可以直接修改后缀成zip然后解压打开文件看看,如下

java使用POI将数据导出放入Excel

こ雲淡風輕ζ 提交于 2020-12-15 05:25:46
本文主要是将数据库取出的数据按照自定义的行列格式导出到excel中,POI则是实现我们需求所用到的技术。 POI介绍 使用spring boot导入相关依赖 获取数据(自行处理) 完整代码实例:创建excel,将数据写入excel ####1.POI介绍 要想使用POI对Excel进行操作,我们需要先了解一下Excel的两种版本:一种是97-2003版本扩展名是“.xls”;一种是2007版本扩展名是“.xlsx”。POI分别针对这两种版本需要导入的jar包不同,操作类也不同。 HSSF:操作的是.xls;XSSF:操作的是.xlsx。 不管哪种操作,基本思路都是一致,先要对应一个Excel文件,然后在对应文件中的某个sheet,接下来在操作某一行和这一行中的某一列。对应POI包:文件(webbook)、sheet(sheet)、行(row)和具体单元格(cell)。 详细操作请参照POI官网的 Excel(HSSF/XSSF)操作 ####2.通过spring boot导入依赖 为了使用java操控excel,需要将相关的jar引入,对于HSSF只需要导入POI.jar,而XSSF则需要导入四个jar,具体导入见下面代码 将代码块的依赖放入工程的pom.xml文件中就可以了。 工程不是spring boot的需要手动将下面jar导入。 <!-- HSSF需要引入的 -->

XLSXCovertCSVReader 工具类(XML )

不羁岁月 提交于 2020-10-29 09:16:56
import cn.com.amway.msgcenter.console.util.StringUtil; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.openxml4j.exceptions.OpenXML4JException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.openxml4j.opc.PackageAccess; import org.apache.poi.ss.usermodel.BuiltinFormats; import org.apache.poi.ss.usermodel.DataFormatter; import org.apache.poi.xssf.eventusermodel.ReadOnlySharedStringsTable; import org.apache.poi.xssf.eventusermodel.XSSFReader; import org.apache.poi.xssf.model.StylesTable; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import