Tag: apache poi

如何解决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的示例程序。

如何使用apache poi在excel表单的同一个单元格中更改特定的文本颜色?

有没有人知道如何改变Excel中单元格的特定文本的颜色。 我正在使用Apache poi,我可以找出更改整个单元格的文本颜色。 但是我只想要一个特定的文本。 例如:单元格A1有Hello World,我希望“你好”是蓝色的,“世界”是绿色的。 我该怎么做呢?

如何使用java填写Excel文件

我有以下代码来填写Excel文件,使用Jsoup从Internet获得的信息。 package knvbj; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.nodes.TextNode; import org.jsoup.select.Elements; public class KNVBJ { private static int Clnummer=1; public static void main(String[] args) throws IOException { FileOutputStream out = new FileOutputStream("/Users/muratcanpinar/Downloads/KNVBJ/build/classes/knvbj/ClubInformation.xlsx"); List<String> urlList = […]

如何设置date为typesdate在Excel中与Apache poi?

我正在使用apache poi 3.8创build一个excel文件。 这个excel文件需要包含一些date。 我正在试图用exceltypes“date”来格式化excel文件。 但我总是得到一个types的“自定义”。 我需要使用“date”types,所以它将根据用户设置进行本地化。 我已经尝试了以下内容: Apache poidate格式 Apache POI本地化date到Excel单元格 但它不工作。 这是我有的代码: XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet("new sheet"); XSSFDataFormat df = wb.createDataFormat(); CellStyle cs = wb.createCellStyle(); cs.setDataFormat(df.getFormat("d-mmm-yy")); XSSFCell cell = sheet.createRow(0).createCell(0); Calendar c = Calendar.getInstance(); c.set(2012,3-1,18); cell.setCellValue( c.getTime() ); cell.setCellStyle(cs); // Write the output to a file FileOutputStream fileOut […]

Apache POI评估公式

我在表单的单元格中有一些公式,我想在插入一些值之后对它们进行评估。 例如: 我的公式是=SUM(B1,B2) 值插入前B1值为1 , B2值为3 ,公式结果为4 现在插入值后,B1的值是5 ,B2的值是2但公式仍然会产生4 ,我该如何评估/触发这个计算? 当然,当我按下公式单元格上的返回button时,会计算出新的值7 ,是否有办法在没有手动交互的情况下触发它? 我正在使用Excel 2007,所以XSSFWorkbook 编辑/更新: 我在发布之前使用了Gabors解决scheme,但是我将其用作参考,以下是发生的情况: Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.ss.formula.WorkbookEvaluator.<init>(Lorg/apache/poi/ss/formula/EvaluationWorkbook;Lorg/apache/poi/ss/formula/IStabilityClassifier;Lorg/apache/poi/hssf/record/formula/udf/UDFFinder;)V at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.<init>(XSSFFormulaEvaluator.java:64) at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.<init>(XSSFFormulaEvaluator.java:51) …………… …………… 以下是相关代码的一部分: public XSSFFormulaEvaluator getEvaluator(){ if(evaluator == null){ evaluator = new XSSFFormulaEvaluator(wb); } return evaluator; } 实际上调用评估者: //where index is int, and mycell is int row = (XSSFRow) […]

使用poi api从电子表格中读取时间值

我正在尝试从电子表格中读取date列和时间列。 我能够从表格中退出date列,但不能退出时间列。 例如,我的工作表将具有以下forms的行: 约会时间 2012/11/2 12:15:01 我有以下代码来获取date列: while(cellIterator.hasNext()) { HSSFCell cell = (HSSFCell)cellIterator.next(); switch(cell.getCellType()){ case HSSFCell.CELL_TYPE_NUMERIC: HSSFCellStyle style = cell.getCellStyle(); if (HSSFDateUtil.isCellDateFormatted(cell)) { d = (Date)getDateValue(cell); SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); System.out.println(dateFormat.format(d)); } } } protected static Object getDateValue(HSSFCell cellDate) { double numericDateValue = cellDate.getNumericCellValue(); Date date = HSSFDateUtil.getJavaDate(numericDateValue); return date; } 正如你所看到的我使用 HSSFDateUtil.isCellDateFormatted(细胞) 检查单元格是否有date值。 […]