Tag: java

有没有办法使用Apache POI在Excel中创build数据透视表?

我目前正在进行Excel的自动化,并添加这样我已经很好地使用了Apache POI库。 由于我有很多数据存储在我的Excel工作簿中的各个列,我试图创build一个数据透视表。 有没有办法使用POI创build数据透视表? 我的要求是,我需要在一个新的Excel工作簿或在我存储我的数据在同一个工作簿中创build数据透视表。

Apache POI:更改Excel工作表的页面格式

有没有办法在使用Apache POI创buildExcel文档时更改页面大小和布局? 默认的是A4垂直,而我需要A6-水平(横向)。 我不认为这个问题需要代码示例,正如手册中所述,创buildExcel文档: Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("new sheet");

无效的标题读取xls文件

我正在读本地系统上的一个excel文件。 我正在使用POI jar版本3.7,但获取错误无效的头部签名; 读-2300849302551019537或hex0xE011BDBFEFBDBFEF,预期-2226271756974174256或hex0xE11AB1A1E011CFD0。 用Excel打开xls文件工作正常。 代码块在哪里发生:任何人的想法? /** * create a new HeaderBlockReader from an InputStream * * @param stream the source InputStream * * @exception IOException on errors or bad data */ public HeaderBlockReader(InputStream stream) throws IOException { // At this point, we don't know how big our // block sizes are // So, read […]

Apache POI – Excel写入 – locking单个单元

我使用Apache POI来生成我的客户可以下载的Exccel Templete,添加值并上传回来。 我想设置单元格值不可编辑,以便模板标题不能被编辑。 我试过这个代码,但它不工作, cell.getCellStyle().setLocked(true) 我也读过,lockingExcel表,然后允许列locking(假)将工作,但我不知道有多less列将由客户端填写,所以我想要的是所有其他列被编辑,除了我填充dynamic使用Apache POI。 我希望我的查询清楚明白。

XSSF(POI) – 将“公式”列添加到数据透视表

我正在使用POI 3.12-beta1: <!– Apache POI (for Excel) –> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.12-beta1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.12-beta1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>ooxml-schemas</artifactId> <version>1.1</version> </dependency> 我正在尝试创build一个计算的数据透视表列,它被定义为: = 'Ended' / 'Generated' * 100 。 我继续在Excel中手动编辑工作表,以使其正常工作。当我将*.xlsx文件反转为ZIP目录并查看它时,我在\xl\pivotCache\pivotCacheDefinition1.xmlfind了以下代码: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <pivotCacheDefinition xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" r:id="rId1" refreshOnLoad="1" refreshedBy="vyasrav" refreshedDate="42110.580247453705" createdVersion="3" refreshedVersion="3" minRefreshableVersion="3" recordCount="352"> <cacheSource type="worksheet"> <worksheetSource ref="A1:O353" sheet="Data"/> </cacheSource> <cacheFields count="16"> […]

如何解决java.lang.VerifyError:org / apache / poi / xssf / usermodel / XSSFWorkbook?

我正在尝试从资源文件夹中读取xlsx文件。 我收到下面的例外, 05-16 10:12:05.613 E / AndroidRuntime(2915):致命exception:主05-16 10:12:05.613:E / AndroidRuntime(2915):java.lang.VerifyError:org / apache / poi / xssf /的usermodel / XSSFWorkbook 在这个例外之前,我也收到了一些警告, 无法find方法org.openxmlformats.schemas.spreadsheet.xml.x2006.main.WorkbookDocument $ Factory.parse,从方法org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead VFY:无法parsingexception类3612(Lorg / apache / xmlbeans / XmlException;) 我已经在我的应用程序中添加了poi 3.12库,库截图如下, 我已经在Order and Export中检查了poi-3.12和poi-ooxml-3.12 jar文件,截图如下, 我用下面的代码, InputStream is = context.getAssets().open("sample.xlsx")); XSSFWorkbook workbook = new XSSFWorkbook(is); XSSFSheet sheet = workbook.getSheetAt(0); Cell cell = sheet.getRow(0).getCell(0); String […]

在xls文档打开后,Apache POI设置选定的单元格

我们有下一种情况:我们的系统有xls格式的数据导出,这是很多行和列的大文件。 而用户下载并打开文档后,他看到文件滚动到最后一列和最后一个电子表格选项卡。 这是非常烦人的,最好把重点放在第一个标签和第一个单元格上。 我做了简单的testing代码,看看它是如何工作的: public class SelectionTest { public static String file = "/usr/test/poi.test/src/main/resources/test"; @Test public void test() throws FileNotFoundException, IOException { HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file)); HSSFSheet s = wb.getSheetAt(0); s.setActive(true); HSSFRow row = s.getRow(0); HSSFCell cell = row.getCell(0); cell.setAsActiveCell(); FileOutputStream out = new FileOutputStream(file); wb.write(out); out.close(); } } 而这不起作用。

如何在JAVA中使用apache poi在Excel中删除警告?

我正在使用apache poi api来在我的应用程序中生成Excel表格。 在Excel中设置的数据将通过stringtypesdynamic传递。 对于column1,值是字母数字 。 当我生成Excel时,它会给我一个警告“数字存储为文本”或单元格上的“2位数字的文本date ”的绿色指示。 我想删除该警告。 我发现从excel中我们可以标记一个单元格为“忽略错误”,忽略这个警告。 如何做到这一点编程或有任何其他的替代scheme来实现这一任务? 我也附上了绿色标记显示警告的截图。 代码: if (cellValue != null && (shouldBeRightAlign)) { cellType = Cell.CELL_TYPE_NUMERIC; } else if (cellValue != null) { cellType = Cell.CELL_TYPE_STRING; } cell.setCellValue(cellValue);

Apache POI autoSizeColumn调整为最小宽度

使用公式的值时,我很难让列正确自动resize。 我已经“解决”了这一点,通过使一个隐藏行的最大值为常量string值,但是这远远不够优雅,往往需要评估每个单元格中的公式以获取生成的最大string。 虽然这种工作对于这样一个小电子表格来说,对于大约16列×6000行的薄片来说是非常不切实际的。 以下代码呈现在OpenOffice中。 package com.shagie.poipoc; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import java.io.FileOutputStream; public class SimpleBug { public static void main(String[] args) { try { Workbook wb = new HSSFWorkbook(); FileOutputStream fileOut = new FileOutputStream("workbook.xls"); Sheet sheet = wb.createSheet("new sheet"); Row row = sheet.createRow(0); CellStyle style = wb.createCellStyle(); style.setDataFormat(wb.createDataFormat().getFormat("[h]:mm")); Cell cell = row.createCell(0); cell.setCellValue(123.12); cell.setCellStyle(style); row.createCell(1).setCellFormula("A1"); […]

使用Apache POI库将Excel Spreadsheets转换为HTML

我正在尝试使用ExcelToHtmlConverter类来转换HTML文档中的文档,但文档不清楚。 有没有人有如何加载一个Excel文档并将其转换为HTML的示例程序。