使用POI时,我应该将excel表中的读取用作工作簿还是HSSFWorkbook?

时间:2012-10-29 15:40:17

标签: apache-poi

我必须创建一个自定义标记,它使用POI读取excel文件,修改一些单元格,然后将修改写回到同一个excel文件中。 excel文件中有多个工作表。在某些工作表中,某些单元格被锁定,某些单元格具有颜色编码,而某些单元格具有下拉选项。当我将修改写回excel文件时,所有这些特殊样式必须保持不变。

我注意到我可以通过Workbook将excel文件作为WorkbookFactory.create()读取。我也可以通过HSSFWorkbooknew HSSFWorkbook()的形式宣读。我的问题是,我应该将哪一个用于我想要完成的任务?

1 个答案:

答案 0 :(得分:1)

Workbook是适用于HSSF(.xls文件)和XSSF(.xlsx文件)的通用接口。使用Workbook代替HSSFWorkbook,您的代码对于两种文件格式都可以正常工作。

来自Why Change? section on the POI website

  

如果您现有的HSSF用户模型代码运行正常,并且您不想使用新的OOXML XSSF支持,那么您可能不需要。您现有的HSSF代码将继续正常运行。

     

但是,如果您希望能够同时使用HSSF作为.xls文件,还希望使用XSSF作为.xslx文件,那么您需要对代码进行一些轻微的调整。

所以,如果你只需要支持.xls,并且只需要支持,你可以坚持使用HSSFWorkbook。但是,如果您现在或将来都要使用.xls和.xlsx,请使用通用接口