Tag: apache poi

Excel数据只写在第一行 – java

我已经写了一个使用java写数据到excel的代码,但是它不会增加roe值,导致在第1行本身覆盖数据。我知道rownum计数增量问题。 import java.util.*; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.*; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.*; import java.io.*; public class ExcelWriter { static int rownum; @Test public void ExcelWriters(Integer i, String CableName, String Count, String EndCableId, String FirstCableId) { rownum = i; HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("WhileTrue"); Map < Integer, Object[] > data = new HashMap […]

Apache POI:xlsx不能用MS Office excel打开文件

我使用XSSF工作簿创build了一个.xlsx文件。 我能够通过谷歌文档正确阅读,但显示空白MS Excel 2007(这是我唯一的Excel)。 任何build议

Apache POI无法检测到散列格式的数字

我需要将通过xls / xlsx上传的电话号码读取到Javastringvariables中,尽可能接近在Excel文件中显示的内容。 所以我填写了这些数据: 正如你所看到的,单元格内的实际值是166609647 ,它的格式是60############# ,所以最后我们看到单元格上出现了60166609647 。 我想要捕获string中的单元格内容为60166609647 ,但到目前为止,我只能设法捕获166609647 ,任何人都可以启发我什么是错的? 注意:如果我将格式从60############更改为60000000000 ,我可以捕获60166609647而没有任何问题,但是Excel通过公共站点上传,因此我无法执行该操作。 代码如下所示: Cell cell = getTheCell(); // Got this after reading the sheets and rows DataFormatter df = new DataFormatter(); String value = df.formatCellValue(cell); // Here in value // If format is 600000000, I can get 60166609647 (right) // If format is 60#######, […]

如何根据内部逻辑多次运行testNGtesting?

我已经通过一些解决scheme来讲述TestNg DataProvider和InvocationCount ,但是DataProvider或InvocationCount甚至在我的@Test方法启动之前就已经出现了。 我的要求是,我有一个DataReader类,它以键值对的forms从Excel文件中读取数据(键总是在第一行,并且可以有多于一行的值)。 假设如果有2行的值可用,那么我将不得不与另一组数据运行相同的@Test (如果我可以为@Test的每次迭代运行@BeforeClass和@AfterClass方法将是很好的)。 像这样的东西: @BeforeClass //Some Code Here that runs on each iteration of @Test @Test public void myTest() { // make a decision here, based on number of rows of values, run the test multiple times DataReader.LoadDataSheet("TestData.xlsx", "SheetName"); } @AfterClass //Some Code Here that runs on each iteration of @Test

错误:types不匹配:无法从HSSFWorkbook转换为工作簿

我使用poi-3.2-FINAL-20081019.jar 。 错误: types不匹配:无法从HSSFWorkbook转换为工作簿 try { if (strType.equals("xls")) { wb = new HSSFWorkbook(inputStream); } else { wb = new XSSFWorkbook(inputStream); } Sheet sheet = wb.getSheetAt(0); 如何解决它?

XSSFClientAnchor的最大dy值

使用Apache-POI,我试图插入一个图像在一个大的字体(Calibri-32)半行左上angular的Excel工作表。 使用众所周知的公式,我发现XSSFClientAnchor内的dy1值应该是XSSFClientAnchor 。 但是,打开Excel文件时,出现错误,说明内容不可用。 接受警告, 图像显示正确无论如何 。 经过一些testing,我发现dy的最大值,没有得到Excel的错误,似乎是190,500 。 我使用的字体的行高为55像素。 行的中间因此是0.5*55*Units.EMU_PER_PIXEL=261,938 。 使用更小的字体时会发生同样的问题,但在图像的行尾附近开始图像。 在所有情况下,如果dy1的值大于190500,我会得到一个错误。 有没有人有线索? 更新: 我从xlsx文件中提取了xml ,并且在某处注意到一个负的cy值。 我对xlsx的内容并不熟悉,但我希望对其他人有用: <xdr:wsDr xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"> <xdr:twoCellAnchor editAs="oneCell"> <xdr:from> <xdr:col>2</xdr:col> <xdr:colOff>147637</xdr:colOff> <xdr:row>0</xdr:row> <xdr:rowOff>261937</xdr:rowOff> </xdr:from> <xdr:to> <xdr:col>5</xdr:col> <xdr:colOff>2309812</xdr:colOff> <xdr:row>13</xdr:row> <xdr:rowOff>14287</xdr:rowOff> </xdr:to> <xdr:pic> <xdr:nvPicPr> <xdr:cNvPr id="1" name="Picture 1" descr="Picture"/> <xdr:cNvPicPr> <a:picLocks noChangeAspect="true"/> </xdr:cNvPicPr> </xdr:nvPicPr> <xdr:blipFill> <a:blip r:embed="rId1"/> <a:stretch> <a:fillRect/> </a:stretch> […]

保存下载到浏览器下载而不是使用java的系统

我有一个dynamic的Web项目在我的日食,需要一个Excel数据表,并把数据库。 然后从数据库中,我创build了一个Web应用程序,供用户添加,编辑,删除和查看曾经在电子表格中的数据库中的数据。 Web应用程序将获取用户创build,编辑和删除的数据,并根据用户请求创build一个Excel电子表格。 我创build了一个写excel电子表格的链接,但是如何将新电子表格下载到用户计算机。 因此,如果他们点击链接进行下载,就会进入浏览器下载,例如他们正在使用的浏览器(例如在Chrome浏览器中),文件将转到屏幕底部的下载栏。 我一直在研究,我只是迷路了。 我正在使用java: try{ File file = new File("C:\\eclipseworkspace\\spreatdsheet.xlsx"); if(file.delete()){ System.out.println(file.getName() + " will be overwritten, created"); }else{ System.out.println(file.getName() + " does not exist. Newly created."); } }catch(Exception e){ e.printStackTrace(); } FileOutputStream out = new FileOutputStream(newFile("C:\\eclipseworkspace\\spreatdsheet.xlsx")); workbook.write(out); out.close(); workbook.close(); System.out.println("spreadsheet .xlsx was created"); 这是我的java代码的一部分,它导入了Apache POI类,并将其写入eclipse中的dynamicweb项目目录。 我需要什么或我需要在哪里启动,以便目录中的电子表格可以下载到用户浏览器下载,例如chrome:// downloads / in chrome browser

Apache POI创build了以后无法打开的xlsx文件。 检测到邮政炸弹

当我使用Apache POI创buildxlsx文件(当文件很大时),当MS Excel或LibreOffice Calc打开它时,它创build的这个文件不能被相同的Apache POI打开。 当我尝试用Apache POI打开这个工作簿时,就是这么说的 检测到邮政炸弹 我可以打开它只有当我调用ZipSecureFile.setMinInflateRatio(0)或重新保存在LibreOffice(MS Excel在这里没有帮助)。 如何解决这个问题? 为什么POI创build无法打开的文件?

Java Apache POI NoClassDefFoundError WorkbookFacory

我正在尝试在Java RMI实现的服务器端调用一个方法。 这个方法将打开,读取和Excel电子表格中的一些数据操作。 Workbook wb = WorkbookFactory.create(inp); 这是我得到以下例外的代码。 inp是具有指定文件path的InputStream。 exception:java.rmi.ServerError:服务器线程发生错误; 嵌套的exception是: java.lang.NoClassDefFoundError:org / apache / poi / ss / usermodel / WorkbookFacory 我也尝试在本地调用这个方法,这没有任何错误。 现在,服务器和客户端都在同一台机器上运行(本地主机)。

带有%符号的Apache POI读取单元格

何我可以读取带有%符号的单元吗? 如果我有105%的Excel单元格,POI告诉我,这必须被读作一个数字(这很好)。 这样做给我1.0d。 我预计会得到105或1.05d。