WEB开发网
开发学院数据库DB2 使用 Apache 的 POI 和 HSSF 将 Excel 电子表格数... 阅读

使用 Apache 的 POI 和 HSSF 将 Excel 电子表格数据加载到 DB2

 2010-04-22 00:00:00 来源:WEB开发网   
核心提示: 图 3. 选择 Excel 电子表格一旦选择了 Excel 电子表格,就会向您提供将要创建的表的预览,使用 Apache 的 POI 和 HSSF 将 Excel 电子表格数据加载到 DB2(6),见 图 4,注意,所以我们值得再看一看这里的进展如何,从电子表格中取数据的过程是由 POI/HSS

图 3. 选择 Excel 电子表格
使用 Apache 的 POI 和 HSSF 将 Excel 电子表格数据加载到 DB2

一旦选择了 Excel 电子表格,就会向您提供将要创建的表的预览,见 图 4。注意,现在“Table to Create”为“EXCEL_TEST”。该值是通过 HSSF 从工作表的命名选项卡面板中动态提取的,其中还包括了行号。这些行号仅仅用于预览目的,而不会被写入数据库。

图 4. 表的预览
使用 Apache 的 POI 和 HSSF 将 Excel 电子表格数据加载到 DB2

此时,Apache 的 POI 正完成该过程中最为繁琐的工作,所以我们值得再看一看这里的进展如何。从电子表格中取数据的过程是由 POI/HSSF 在 SpreadsheetTableModel.java 类的 reloadSpreadsheetModel 方法中处理的。 清单 1显示了相关部分的代码。

清单 1.

// Use POI to read the selected Excel Spreadsheet 
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(fileName)); 
// Extract the name of the first worksheet and use this for the tableName 
tableName = wb.getSheetName(0); 
// Select the first worksheet 
HSSFSheet sheet = wb.getSheet(tableName);    
try { 
 clearAll(); 
 updateColumnModel(fileName); 
 // Use the HFFS functions for the number of rows & 
 // columns, instead of computing them ourselves 
// System.out.println("Getting Spreadsheet Dimensions..."); 
 rowCount = sheet.getPhysicalNumberOfRows(); 
 colCount = sheet.getRow(0).getPhysicalNumberOfCells(); 
 // Skip the first row, the column names are extracted 
 // from this row. 
 for(int i = 1; i < rowCount; i++) { 
 // Get row number i 
 HSSFRow row = sheet.getRow(i); 
 // Store the row in a list 
 ArrayList list = new ArrayList(); 
 for(short j = 0; j <colCount; j++) { 
  // Add each cell to the row 
  list.add(row.getCell(j)); 
 } 
 // Store the row in a list of lists 
 result.add(list); 
 } 
 // Remove one row from the rowCount, since the first row 
 // is assumed to be the column names 
 rowCount--; 
 fireTableStructureChanged(); 
// Catch all Exceptions, most likely a POI error 
} catch (Exception e) { 
 System.out.println("A POI error has occured."); 
 e.printStackTrace(); 
} 

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 Apache POI

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接