Tag: java

使用POI以数字格式设置Excel单元格值

我想在Excel表格中存储数字数据。 数字数据在我的java代码中由stringtypes表示。 有没有可能将其设置为数字,而不是铸造它? 我试过下面的代码,但它没有转换为数字types(我在Excel中得到一个警告,说这个数字被存储为文本…) HSSFCell dCell =… dCell.setCellType(Cell.CELL_TYPE_NUMERIC); dCell.setCellValue("112.45")

有没有办法使用Apache POI来读取.xls和.xlsx文件?

我需要创build一个可以读取xls和xlsx文件的方法。 根据我的研究,HSSF用于读取xls和XSSF来读取xlsx。 有没有我可以用来读取这两个文件的Apache POI的一部分? 我也遇到了ss.usermodel,但没有发现足够的代码,将同时招待xls和xlsx ….

EDITED将JTable写入Excel

我试图导出我的JTable到Excel文件。 列和行名称都很好,但是我添加到JTable中的所有信息都没有写入。 我试过System.out.println() ,它除了列名和行名之外, 还在其他地方打印空值。 我试图从母亲谷歌的答案,但经过2个小时的阅读和尝试,仍然没有进展。 我的脑海里还有一个错误,那就是写入Excel部分的代码可能会出现一些错误,或者添加到JTable的所有内容只是显示器上的图片,而不是实际的数据。 纠正我,如果我错了,任何帮助,高度赞赏。 这是写入Excel部分。 在第一个For循环,我得到的标题,在第二个For循环,我应该得到我的JTable里面的一切,但我不是。 TableColumnModel tcm = nrp.rotaTable.getColumnModel(); String nameOfFile = JOptionPane.showInputDialog("Name of the file"); Workbook wb = new HSSFWorkbook(); CreationHelper createhelper = wb.getCreationHelper(); Sheet sheet = wb.createSheet("new sheet"); Row row = null; Cell cell = null; for (int i = 0; i < nrp.tableModel.getRowCount(); i++) { row = […]

尝试读取XLSX文件时发生NullpointerException

我目前有这个代码使用Apache POI打开一个xlsx文件 File existingXlsx = new File("/app/app.xlsx"); System.out.println("File Exists: " + existingXlsx.exists()); Workbook workbook = WorkbookFactory.create(existingXlsx); 当我尝试执行此操作时,我得到以下输出 File Exists: true java.lang.NullPointerException at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead(XSSFWorkbook.java:270) at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:159) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:186) at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:91) 我想要打开的文件可以在Excel中打开,并正确显示数据,我能做些什么来让POI读取XLSX文件? 这是打破的文件; https://mega.co.nz/#!FJMWjQKI!CzihQgMVpxOQDTXzSnb3UFYSKbx4yFTb03-LI3iLmkE 编辑 我也试过了,这个结果也是一样的错误; Workbook workbook = new XSSFWorkbook(new FileInputStream(existingXlsx)); 编辑 我发现它正在抛出exception的行; WorkbookDocument doc = WorkbookDocument.Factory.parse(getPackagePart().getInputStream()); this.workbook = doc.getWorkbook(); Map<String, XSSFSheet> shIdMap = new HashMap<String, […]

在Java中匹配Excel的浮点数

我在工作表1的左上方单元格中有一个单一数字的.xlsx电子表格。 Excel用户界面显示: -130.98999999999 这是在公式栏中可见的,即不受包含单元格设置显示的小数位数的影响。 这是Excel将为这个单元格显示的最准确的数字。 在底层的XML中,我们有: <v>-130.98999999999069</v> 当试图用Apache POI读取工作簿时,它通过Double.valueOf从XML中提供数字,并提供: -130.9899999999907 不幸的是,这与用户在Excel中可以看到的数字不同。 任何人都可以指向我的algorithm,以获得用户在Excel中看到相同的数字? 迄今为止,我的研究表明,Excel 2007文件格式使用IEE754浮点的稍微非标准版本,其中值空间不同。 我相信Excel的浮点数,这个数字是四舍五入的边界的另一边,因此出来,而不是向上舍入。

学习Java的Apache POI

我正在尝试快速学习Java的Apache POI(用于操作Excel)。 我一直在search教程,但到目前为止,我发现的只是简短的2段解释,然后是代码示例。 我想find一些更全面的内容,那就是简明扼要,但要以结构化,完整和可理解的方式来贯穿整个过程。 任何人都知道任何好的教程? Apache POI有没有不错的文档? 我似乎无法在他们的网站上find任何。

使用Apache POI在Excel中locking单个列

我想创build一个Excel,其中只有一个特定的列被locking(只读),其余的是可编辑的, 我正在使用以下方法,但似乎并不奏效。 创build两个CellStyles,其中一个使用setLocked(true),另一个使用setLocked(false)。 然后为需要locking的列中的所有单元格应用locking样式,为所有其他单元格应用未locking样式。 使用sheet.protectSheet(“”)保护工作表。 但是当我在开放办公室打开创build的Excel时,我注意到所有的单元格都被locking了! 它们都不可编辑。 我怎样才能达到上述要求? PS:我不能使用数据validation方法。

用apache poi创build一个密码保护的excel文件?

我正在开发一个简单的Java程序来使用(Apache POI)API创buildexcel文件。 我正在使用Oracle 10g作为数据库,并使用ojdbc14 jar。 我有一个名为USERINFO的表,有3列,即USERNAME,PASSWORD , NAME. 现在使用APACHE POI ,我已经能够把所有的行放在excel文件中。 由于文件包含敏感数据,如用户名和密码,我想使它的密码保护。 在论坛上,我发现如何阅读密码保护的文件,而不是如何创build它们。 那么我怎么能做到这一点呢? 提前致谢。

通过使用Apache POI的单元格引用字母标识符获取单元格

我想通过单元格引用从行中获取单元格,并且遇到问题。 例如,我有: row.getCell(CellReference.convertColStringToIndex("B")); 如果列索引是1 ,但工作正常,但如果列被删除,所以B列索引变成2和方法: CellReference.convertColStringToIndex("B")仍然将其转换为1在这种情况下我无法得到我的列,我得到null 。 所以问题是我怎样才能得到行的列取决于单元格的标识符是一个字母?

Java – 将string写入CSV文件

我想用java写数据到csv文件,但是当我尝试用excel打开生成的文件时,我得到一个错误,说该文件已损坏。 在记事本中打开文件时,它看起来被正确格式化,所以我不知道是什么问题。 我正在使用FileWriter类将数据输出到文件。 FileWriter writer = new FileWriter("test.csv"); writer.append("ID"); writer.append(','); writer.append("name"); writer.append(','); … writer.append('\n'); writer.flush(); writer.close(); 我是否需要在java中使用一些库才能打印到csv文件? 我推测,只要你使用正确的格式,你可以在Java本地执行此操作。 感谢帮助, 肖