一、概覽
Apache的POI項目是一個Java的開源庫,用於讀取和寫入Office的文件格式(例如:doc,xls和ppt)。對於Excel電子表格文件,POI提供了兩種實現:HSSF(Horrible SpreadSheet Format)和XSSF(XML SpreadSheet Format)。
HSSF是POI項目中的舊實現,它使用原生的Microsoft Excel格式進行操作。XSSF是POI項目中的新實現,它使用XML的OOXML(Office Open XML)格式進行操作。
兩種實現的區別不僅限於它們使用的文件格式,還包括它們的功能要素以及在使用過程中的一些細節上。
二、文件格式的差異
Excel文件在HSSF和XSSF實現中使用的格式有所不同。HSSF使用二進制的格式,這種格式的文件擴展名為.xls。XSSF使用XML的OOXML格式,這種格式的文件擴展名為.xlsx。因為XML格式是一種開放的標準,所以XSSF更容易與其他基於XML的工具和技術進行協同工作。
三、功能要素的差異
1、處理能力
因為XSSF使用XML格式,所以與HSSF相比,它有更多的功能,並且可以處理更大的電子表格文件。XSSF可以處理由15,000個工作表組成的工作簿,每個工作表可以有1,048,576行和16,384列。相比之下,HSSF最多只能處理380個工作表,每個工作表只能有65,536行和256列。
2、效率
相比之下,HSSF更快且更節省內存。這是因為XML格式的處理需要更多的時間和空間,而HSSF使用的二進制格式更快。在處理較小的電子表格文件時,HSSF通常比XSSF更快。這也意味着對於需要大量處理的電子表格,使用HSSF可能更加可行,而對於需要處理多種格式的電子表格,使用XSSF可能更好。
四、細節方面的差異
從API的角度來看,HSSF和XSSF有一些細節方面的差異。
1、類的名稱
// HSSF
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
// XSSF
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFRow;
2、獲取字符數據的方法名稱
// HSSF
HSSFCell.getCellTypeEnum() -> HSSFCell.getCellType()
// XSSF
XSSFCell.getCellTypeEnum() -> XSSFCell.getCellType()
3、日期格式的設置
// HSSF
HSSFCellStyle.ALIGN_RIGHT
// XSSF
HorizontalAlignment.RIGHT
五、代碼示例
以下是針對HSSF和XSSF的代碼示例:
// 創建工作簿
// HSSF
HSSFWorkbook workbook = new HSSFWorkbook();
// XSSF
XSSFWorkbook workbook = new XSSFWorkbook();
// 獲取工作表
// HSSF
HSSFSheet sheet = workbook.createSheet("Sheet1");
// XSSF
XSSFSheet sheet = workbook.createSheet("Sheet1");
// 創建行
// HSSF
HSSFRow row = sheet.createRow((short)0);
// XSSF
XSSFRow row = sheet.createRow(0);
// 獲取單元格的內容
// HSSF
HSSFCell cell = row.getCell((short)0);
String value = cell.getRichStringCellValue().getString();
// XSSF
XSSFCell cell = row.getCell(0);
String value = cell.getStringCellValue();
原創文章,作者:JVCDK,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/367929.html