Tag: apache poi

Apache POI – 提取列中的所有不同值

我有一个像这样的excel文件 – Ticket # Status Person 1. Open John 2. Working Mark 3. Pending Betty 4. Working Mark 5. Open Mark 6. Open John 7. Pending Betty 8. Working John 9. Working Mark 10. Pending Betty 我想提取以下信息 所有不同的人的名字(在第3列,在这种情况下 – 约翰,马克和贝蒂)。 一个人有多less张票a。打开b。工作c.Pending。 (例如 – 对于约翰,2票是开放的,1是工作,0是待定)。 我正在使用Apache POI,请build议,我如何才能获得上述信息。

java apache poi如何设置两行来始终显示

我的目标是使我的前两行的传播将始终显示无论我滚动多远。 但坦率地说,我不知道该怎么做,或者甚至可以用poi。 有人能指引我走向正确的方向吗? 谢谢。

从大文件中提取文本

我需要从大文件中提取文本(最大限制50MB)文件可能是doc,ppt,xls,txt或pdf格式。 到目前为止,我已经使用Apache POI'http: //poi.apache.org/ ' 用于Microsoft Office文档和PDFBox从PDF中提取文本。 但是,随着文件变得特别大,以下文件,提取过程变慢。 结果到目前为止, 1.PPTX – 45MB – 3分钟apx 2.PDF – 62MB – 2分钟apx 3.Docx – 32MB – 15秒apx 4.XLS – 17MB – 10秒apx 5.XLSX – 7MB – 20秒apx 我需要这个过程是快速的。 我可以使用哪些API来实现这一点,以及哪些最佳实践可以帮助我提高应用程序的性能?

密码保护XSSFWorkBook Apache POI

我需要密码保护XSSFWorkBook。 对于HSSF,我可以很容易地做到这一点,但同样的实现不适用于XSSFWorkBook。 我正在使用Apache POI 3.6和3.9。 我的意思是我尝试使用3.6和3.9。 我想我需要使用POIFSFileSystem,但任何人都可以引导我相同。

在Excel中dynamic更改单元格颜色

我正在使用POI库来处理Excel文件,我想要更改特定单元格的ForGroundColor。 由于我不满意IndexedColors的列表,我想通过replace一个已经存在的(在我的情况下为HSSFColor.BLUE)来创build自己的问题,它只保存最后一次迭代的颜色(所有单元格都相同颜色)。 代码(convData – 两个dim双数组,标准化为255): HSSFPalette hssfPalette = excelFile.getCustomPalette(); CellStyle cellStyle = excelFile.createCellStyle(); hssfPalette = excelFile.getCustomPalette(); cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); for (int i=0; i<convData.length; i++) { Row row = excelSheet.createRow(i); for (int j=0; j<convData[i].length; j++) { Cell cell = row.createCell(j); hssfPalette.setColorAtIndex(HSSFColor.BLUE.index, convData[i][j].byteValue(), convData[i][j].byteValue(), convData[i][j].byteValue()); cellStyle.setFillForegroundColor(hssfPalette.getColor(HSSFColor.BLUE.index).getIndex()); cell.setCellStyle(cellStyle); } }

从java,如何在Excel电子表格closures的情况下给出一个实例中的多个电子表格

我有一个Java程序,为他们的命令行启动Excel电子表格,并等待它closures采取下一步行动如下。 (顺便说一句,我的Excel运行macros,所以我closures电子表格时,我的macros完成执行,以表明它已经完成) p = Runtime.getRuntime().exec("cmd /c start /wait C:\\"+excelSheet); p.waitFor(); System.out.print("finished "+count + " "+ excelSheet); 不过,我想我的Java程序启动2 Excel表格,每次closures一张表,我想采取行动。 Excel 2010使用Excel的一个实例启动电子表格的问题。 因此,我的Java程序只检测到Excel的实例closures,这意味着两个电子表格都必须closures。 我该如何解决? 无论是Java代码,Excel代码,还是其他一些创新方法? 请帮忙谢谢 PS:我在开始之前使用apache poi写入excel,并在closures之后从中读取

apache poi excel小时格式设置单元格值java

我正在使用Excel生成Excel,并在Excel中执行了所有function,但是会出现一个问题。 我想设置一个像HH:MM的单元格值,而不是date。 我有一个像12:45,36:30,102:50的string。 对于每个单元格,我都希望在Excel中检测到这些单元格的时间格式大于24小时,如果我select这些单元格,则在Excel上显示小时数。 我不知道该怎么做。 我发现了一个类似的post( HH:MM:SS xls使用Apache POI阅读 ),但是这篇文章只介绍了如何读取这些单元格。 我想设置一个单元格值,比如25:00,205:00,152:30这样的只有几小时和几分钟的格式。 你可以帮我吗? 我真的很感激你的效果!

JAVA POI无法理解工作簿克隆表方法,因为我什么都没有

我的工作簿中只有一张纸,需要从现有的纸张中创build两张新的纸张。 我首先使用工作簿创build方法创build新工作表,然后使用克隆表格方法克隆它。 但是,当从表中获取数据时,我只从我现有的工作表中获取数据,而从新创build的工作表中没有收到数据。 是我的理解错误克隆表方法。 它不会将现有工作表中的数据提供给新工作表。 XSSFWorkbook workbook = new XSSFWorkbook(file); XSSFSheet sheet = workbook.getSheetAt(0);\\existing sheet XSSFSheet newSheet = workbook.createSheet("NewSheet");\\created new sheet XSSFSheet newSheet1 = workbook.createSheet("NewSheet2");\\created new sheet newSheet = workbook.cloneSheet(1);\\clone sheet from existing sheet newSheet1 = workbook.cloneSheet(1);\\clone sheet from existing sheet for(int sheetNum=0; sheetNum < workbook.getNumberOfSheets(); sheetNum++) { // while iterating data I am getting […]

Apache POI – 如何为xlsx创build工作簿

当用xls工作时,我可以创build工作簿,但是使用xlsx时,似乎无法使其工作。 我正在使用poi-ooxml.jar并试图使用该命令 new XSSFWorkbook(); 不过,我每次都会收到错误消息,有什么想法? Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at Testing2.main(Testing2.java:20) Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook at java.net.URLClassLoader$1.run(Unknown […]

如何在使用apache poi阅读时在excel中获取冻结或拆分列的信息?

当我通过apache poi文档时,他们说你可以使用util包中的PanelInformation对象来获取冻结或拆分窗格的信息。 为此,我需要HSSFSheet类的对象。 我能够获得HSSFSHeet对象,但是当我试图从getPanelInformation方法获取PanelInformation。 它返回我空。 HSSFWorkbook workbook = new HSSFWorkbook(file); HSSFSheet sheet = workbook.getSheetAt(sheetNumber); workbook.setActiveSheet(sheetNumber); System.out.println(sheet.getPaneInformation());