使用 Apache 的 POI 和 HSSF 将 Excel 电子表格数据加载到 DB2
2010-04-22 00:00:00 来源:WEB开发网图 3. 选择 Excel 电子表格
一旦选择了 Excel 电子表格,就会向您提供将要创建的表的预览,见 图 4。注意,现在“Table to Create”为“EXCEL_TEST”。该值是通过 HSSF 从工作表的命名选项卡面板中动态提取的,其中还包括了行号。这些行号仅仅用于预览目的,而不会被写入数据库。
图 4. 表的预览
此时,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();
}
- ››使用linux中的quota教程
- ››apache设置域名绑定 以及绑定不起作用的排查
- ››使用jxl生成带动态折线图的excel
- ››apache rewrite将指定URL转向指定的几个服务器
- ››使用mysql mysqldump进行数据库迁移
- ››使用jquery是新tab形式
- ››使用QUnit进行Javascript单元测试
- ››使用UITextFieldDelegate来隐藏键盘
- ››使用公式提取Excel中的日期后发现格式不对
- ››使用SQL Azure 的BI 解决方案
- ››使用PLSQL Developer工具导出sql文件
- ››使用双缓冲技术实现Android画板应用
更多精彩
赞助商链接