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

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

 2010-04-22 00:00:00 来源:WEB开发网   
核心提示: 该代码的操作十分简单,首先将 HSSF 用于打开选中的电子表格,使用 Apache 的 POI 和 HSSF 将 Excel 电子表格数据加载到 DB2(7),然后使用嵌套的 for 循环来一行行、一个个单元格地扫描电子表格,接着 HSSF 存取器方法 getRow 和 getCell 利用一系

该代码的操作十分简单。首先将 HSSF 用于打开选中的电子表格,然后使用嵌套的 for 循环来一行行、一个个单元格地扫描电子表格。接着 HSSF 存取器方法 getRow 和 getCell 利用一系列的 list 结构在内存中构建一个表。我们还使用 HSSF 所提供的方法来确定行和列的数目,而诸如 getSheetName 和 getSheet 的各种内务方法则用于区分要扫描的工作表。而 SpreadsheetTableModel 类的 updateColumnModel 方法将用于提取电子表格的列名及其类型。该方法的工作方式与 reloadSpreadsheetModel 方法相似,但是它只需要查看第一行以获得列名以及查看下一非空行以获得列的类型,该方法是直接由 HSSF 提供的,这消除了猜测。

留心的读者还将注意到其代码中提供了另一种与 清单 1 中代码实现相似的备选方法。在 SpreadsheetTableModel 中,两个方法 reloadSpreadsheetModelAlternate 和 updateColumnModelAlternate 封装了使用 HSSF/POI 所提供的行和列迭代器的方法。这些备选方法的操作也十分简单。嵌套的 while 循环使用迭代器来一行行、一个个单元格地扫描电子表格。在我们需要这些数据之前,还是由一系列的 list 结构来存储它们。我们将其作为练习留给读者来检查代码中的差异。

当我们将数据置于数据库中时,Excel 电子表格中所有的格式和元数据都将丢失。因此,一旦将数据传送给 SpreedsheetTableModel,就可以忽略格式和元数据了。如果您打算使用 POI/HSSF 来执行 DB2 到 Excel 的转换,那么这些特性可能就占有重要地位了。

此时,可以将 Table to Create这个可编辑的文本域更改为任何名字,但要警告您:如果该表的名字已经存在,则将产生错误,见 图 5。如果需要,我们可以删除任何现有的表,但是这样做是有危险的,所以我们选择保守一点并且总是强制用户创建一个新表。如果真的需要覆盖现有的表,您可以使用 DB2 提供的管理工具手工来完成。

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

Tags:使用 Apache POI

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