我必须创建一个自定义标记,它使用POI读取excel文件,修改一些单元格,然后将修改写回到同一个excel文件中。 excel文件中有多个工作表。在某些工作表中,某些单元格被锁定,某些单元格具有颜色编码,而某些单元格具有下拉选项。当我将修改写回excel文件时,所有这些特殊样式必须保持不变。
我注意到我可以通过Workbook
将excel文件作为WorkbookFactory.create()
读取。我也可以通过HSSFWorkbook
以new HSSFWorkbook()
的形式宣读。我的问题是,我应该将哪一个用于我想要完成的任务?
答案 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,请使用通用接口