我从jxl切换到poi,因为POI具有更多功能。但是,我无法处理以旧格式生成的xls文件。现在我收到此错误:org.apache.poi.hssf.OldExcelFormatException:ThesuppliedspreadsheetseemstobeExcel5.0/7.0(BIFF5)format.POIonlysupportsBIFF8format(fromExcelversions97/2000/XP/2003)现在我想根据xls版本同时使用JXL和POI,因此对于旧格式的xls文件,我将使用jxl,而对于较新的版本,我将使用POI。这是一个好的解决方案吗?有其他选择吗?
我使用以下代码来自动调整电子表格中的列大小:for(inti=0;i问题在于,对于超过3000行的大型电子表格,自动调整每列的大小需要10多分钟。不过,对于小型文档,它的速度非常快。有什么可以帮助自动调整更快地工作吗? 最佳答案 对我有用的解决方案:可以避免合并区域,因此我可以遍历其他单元格并最终自动调整为最大的单元格,如下所示:intwidth=((int)(maxNumCharacters*1.14388))*256;sheet.setColumnWidth(i,width);其中1.14388是“Serif”字体和256个字体
在我的应用程序中,我使用ApachePOI3.8进行XLS文件处理。现在我想迁移到ApachePOI3.9最新且稳定的版本。我在我的应用程序中添加了JAR文件poi-3.9-20121203.jar并删除了与POI3.8相关的JAR。但似乎在3.9版本中,WorkbookFactory类已被删除。那么如何在ApachePOI3.9中使用WorkbookFactory创建一个Workbook?我提取JAR并检查,没有像WorkbookFactory这样的类。谁能告诉我如何使用POI3.9创建新工作簿? 最佳答案 您缺少几个JAR。看看
我意识到这个问题有点令人困惑,但我不知道该怎么说。无论如何,这是原始代码:privatevoidreadFile(StringexcelFileName)throwsFileNotFoundException,IOException{XSSFWorkbookworkbook=newXSSFWorkbook(newFileInputStream(excelFileName));if(workbook.getNumberOfSheets()>1){System.out.println("Pleasemakesurethereisonlyonesheetintheexcelworkbook.
如何在poi的帮助下将我的全部值(value)写在单元格中?即如果值为1000.000,那么如何在不截断“。”之后的000的情况下写入这个完整值。与兴趣点?意味着我想要完整的值(value)。在我的情况下,它只需要1000,但这对我来说不是正确的格式。 最佳答案 您必须设置存储此数字的单元格的“格式”。示例代码:Workbookwb=newHSSFWorkbook();Sheetsheet=wb.createSheet("formatsheet");CellStylestyle;DataFormatformat=wb.createD
我正在使用ApachePOI(XSSFAPI)读取xlsx文件。当我尝试读取文件时,出现以下错误:org.apache.poi.POIXMLException:org.apache.poi.openxml4j.exceptions.InvalidFormatException:Packageshouldcontainacontenttypepart[M1.13]代码:publicclassReadXLSX{privateStringfilepath;privateXSSFWorkbookworkbook;privatestaticLoggerlogger=null;privateInp
我很感兴趣,想了解更多关于java的知识,如何写入现有的excel表格/操作现有的数据。我想知道你是否能给我一个关于如何编辑现有excel文件并使用jxlapi/ApachePOI保存它的想法或者给我一个关于如何编辑现有excel文件中的一些数据然后保存的示例程序提前致谢!! 最佳答案 教程here非常有帮助并且写得很好。他们使用由ApachePOI项目开发的外部JAR。这是一个编辑一个单元格的简单示例:InputStreaminp=newFileInputStream("wb.xls");Workbookwb=WorkbookFa
我想使用Apachepoi将数据导出到excel。现在我面临的问题是我无法合并行并将它们在中心对齐。导出数据的代码是:List>lstReportHeader=null;HSSFWorkbookwb=newHSSFWorkbook();HSSFSheetsheet=wb.createSheet();//SetHeaderFontHSSFFontheaderFont=wb.createFont();headerFont.setBoldweight(headerFont.BOLDWEIGHT_BOLD);headerFont.setFontHeightInPoints((short)12)
我正在使用Poi.jar从Excel表中获取输入,并且想知道如何检查单元格是否为空。现在我正在使用下面的代码。cell=myRow.getCell(3);if(cell!=null){cell.setCellType(Cell.CELL_TYPE_STRING);//System.out.print(cell.getStringCellValue()+"\t\t");if(cell.getStringCellValue()!="")depend[p]=Integer.parseInt(cell.getStringCellValue());}} 最佳答案
我可以让单元格格式化为日期,但我无法让单元格格式化为货币......有人有一个如何创建样式以使其正常工作的示例吗?我下面的代码显示了我正在创建的样式...styleDateFormat像冠军一样工作,而styleCurrencyFormat对单元格没有影响。privateHSSFWorkbookwb;privateHSSFCellStylestyleDateFormat=null;privateHSSFCellStylestyleCurrencyFormat=null;......publicCouponicsReportBean(){wb=newHSSFWorkbook();Init