Tag: xssf

文件中不支持的function列表

下面的代码给了我一个目前Apache POI不支持的所有函数的列表: Collection<String> unsupportedFuncs = WorkbookEvaluator.getNotSupportedFunctionNames(); for (String unsupportedFunc : unsupportedFuncs) { System.out.println(unsupportedFunc); } 我更感兴趣的function/公式不支持在一个特定的Excel文件。 有没有办法获得这些function的清单? 我已经通过遍历所有表单的所有单元格来检查它是否为公式types,并将其添加到列表中,并通过删除重复项将此列表调整为上面的列表(请参阅我的GitHub上的项目“UnsupportedFormulas” : https : //github.com/Joey73/poi )。 没有一个更容易和更好的方法来做到这一点?

NPOI:如何在条件格式中使用自定义的XSSFColor?

我拥有的: var sheetCf = sheet.SheetConditionalFormatting; var rule = sheetCf.CreateConditionalFormattingRule("A2>0"); var fill = rule.CreatePatternFormatting(); fill.FillBackgroundColor = IndexedColors.Red.Index; fill.FillPattern = (short)FillPattern.SolidForeground; 我如何设置自定义颜色的背景?

XSSF(POI) – 更改数据透视表上的字体

我正在使用Apache POI 3.12: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.12</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.12</version> </dependency> 如何更改数据透视表中的字体? 将单元格(I7)的字体更改为大小8pt后,检查生成的.xlsx会显示以下更改: styles.xml中,在标签内作为第二项: <font> <sz val="8"/> <color indexed="8"/> <name val="Calibri"/> <family val="2"/> <scheme val="minor"/> </font> within the <cellXfs> tag as the 5th entry: <xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyNumberFormat="1" applyFont="1"/> New tag: dxfs: <dxfs count="1"> <dxf> <font> <sz val="8"/> </font> </dxf> […]

将POI样式从表格复制到另一个表格

我有一个模板XSSF表我想创build一个基于模板的SXSSF文件,我可以成功地创build工作表,但我有一个问题,当我试图从旧工作表的样式复制到新工作表 这是我的代码 FileInputStream templateFile = null; XSSFWorkbook templateWorkbook = null; XSSFSheet templateSheet = null; templateFile = new FileInputStream(this.templateFilePath); templateWorkbook = new XSSFWorkbook(templateFile); templateSheet = templateWorkbook.getSheetAt(0); SXSSFWorkbook sworkbook = new SXSSFWorkbook(this.largeReportCashRows); SXSSFSheet sworksheet = (SXSSFSheet) sworkbook.createSheet(); //Create styles CellStyle newStyle = sworkbook.createCellStyle(); //style.setFillPattern(XSSFCellStyle.FINE_DOTS ); //style.setFillBackgroundColor(IndexedColors.RED.getIndex()); CellStyle oldCellStyle = templateSheet.getRow(0).getCell(0).getCellStyle(); newStyle.cloneStyleFrom(oldCellStyle); //SOME CODE TO CREATE ROWS & […]

POI-XSSF:用户定义的数据格式

我正在阅读一个excel,这似乎有user defined data formats 。 例如它有一个数据格式: "yyyy"E ,它只是以yyyy格式显示date,后面跟着字母E. 现在,这种格式不是内置的可用格式的一部分。 所以,似乎当我尝试将此设置为CellStyle DataFormat ,它不起作用。 首先我读了一个工作簿,然后从这个工作簿中创buildDataFormat 。 XSSFWorkbook wb = new XSSFWorkbook(excelToRead); XSSFDataFormat df = wb.createDataFormat(); df对象现在也具有user defined data formats (通过打印检查直到200)。 现在,我尝试在同一个工作簿中创build一个新的单元格,使用这种新的样式: XSSFCell cellTemp = row.createCell(0); XSSFCellStyle styleTemp = wb.createCellStyle(); styleTemp.setDataFormat(df.getFormat(cell.getCellStyle().getDataFormatString())); cellTemp.setCellStyle(styleTemp); cellTemp.setCellValue(cell.getStringCellValue()); System.out.print(formatter.formatCellValue(cellTemp)+" "); 但是,格式化程序没有给我正确的string值,而是给了我date的基础Integer值(如果格式不被识别,我猜是默认值)。 在XSSF中使用用户定义格式的正确方法是什么? 更新 :似乎我能够使用其他用户定义的格式,如yyyy , 0.0%但不是yyyy"E"或yyyy"A"

Apache POI错误加载XSSFWorkbook类

我试图编写一个与Excel文档一起工作的程序,但HSSF格式对于我的要求来说太小了。 我试图移动到XSSF,但是当我尝试使用它时,我总是收到错误。 我设法通过在我的程序中添加xmlbeans-2.3.0.jar和dom4j-1.6.jar来解决前两个问题,但是现在出现了这个错误,这似乎没有通过添加可用的Apache commons jar来解决Apache网站。 错误如下: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap at hot.memes.ExcelCreator.main(ExcelCreator.java:66) Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections4.ListValuedMap at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) … 1 more

java.lang.NoClassDefFoundError:org / openxmlformats / schemas / spreadsheetml / x2006 / main / ctextensionlist in groovy

我试图访问现有的Excel工作表,并试图创build一个新的工作表和更新工作表的一些值,在执行我得到下面的错误行“rowHeader.createCell((short)count).setCellValue(”test1“ );” Java.lang.NoClassDefFoundError:org / openxmlformats / schemas / spreadsheetml / x2006 / main / ctextensionlist执行下面的代码时出错 Foll是我使用的jar子的列表 公地编解码器1.9 共享logging-1.1.3 公网-3.3-FTP 基于JUnit 4.12, JXL-2.6.6来源, JXL-2.6, log4j的-1.2.17, MasterExcelReport, ojdbc6, POI-3.13-20150929, POI-3.15-β1, POI-例子-3.13-20150929, POI-例子-3.15-β1, POI-excelant-3.13-20150929, POI-excelant-3.15-β1, POI-OOXML-3.5 beta5的, POI-OOXML-3.13-20150929, POI-OOXML-3.15-β1, POI-OOXML-架构 – 3.13-20150929, POI-OOXML-模式-3.15-β1, POI暂存器,3.13-20150929, POI暂存器-3.15-β1, PostgreSQL相关9.3-1102.jdbc41, sqljdbc42,xmlbeans-2.6.0 import java.io.*; import java.util.*; import java.util.List; import javax.xml.parsers.*; import javax.xml.xpath.*; import […]

使用POI将数据写入xlsx文件时遇到麻烦Apache – Excel之后会损坏

我已经删除了很多代码,主要是试图捕获块,并粘贴在这里,我相信这很容易让你看,并build议我解决我所面临的问题。 我在SoapUI工具的Groovy Script步骤中运行下面的脚本。 大部分variables数据types遵循Groovy语言语法。 当我运行这个代码时,会创build一个带有destPathvariables中提到的文件名的xlsx文件,但其大小为0 KB。 当我试图打开文件时,由于文件格式或文件扩展名无效,我看到“Excel无法打开文件的文件名”消息,请确认文件没有被破坏,文件的扩展名与文件。” 我看不出我在哪里犯错。 def srcPath = "C:\\Test Data\\Test Data2.xlsx" def destPath = "C:\\Test Data\\Results\\destSheet.xlsx" def setData = new SetData(log,srcPath,destPath) log.info setData.setCellData("Result",0,"Testing123") class SetData{ def log; //log variable to print values on the console String srcPath; String destPath; XSSFWorkbook workbook; OPCPackage pkg; SetData(log,srcPath,destPath){ this.log = log; this.srcPath =srcPath; this.destPath = destPath} […]

如何使用SXSSF写入现有文件?

我有一个包含不同数据的多个工作表.xlsx文件。 在所有表单中,需要容纳近100,000行的数据,并且数据需要用poi语言编写。 对于SXSSFWorkbook来说,这看起来相当快速和简单,我只能在内存中保留100行,但缺点是我只能写入新文件(或覆盖现有文件)。 此外,我不能'加载'现有的文件,即 SXSSFWorkbook wb = new SXSSFWorkbook(file_input_stream) 不允许。 我可以使用工作簿工厂: Workbook workbook = new SXSSFWorkbook(); workbook = WorkbookFactory.create(file_input_stream); 但是当我来冲刷行的时候, ((SXSSFSheet)sheet).flushRows(100); 我得到了不允许从XSSFSheet到SXSSFSheet的types转换的错误。 我试图看看是否有任何方法将工作表复制到不同的工作簿中,但到目前为止似乎必须逐个单元地完成。 有关如何解决这个问题的任何见解?

如何计算Java中Excel表格的行和列

有什么方法可以计算Java中的Excel表中的行和列的数量? 我正在使用XSSF工作簿来导入和parsing数据到程序中。 。 直到最后一行或一列之后才有空单元格。 例如,如果有一个5​​行3列的表格,单元格b2将不会为空。