将SQL查询结果导出到多选项卡式Excel电子表格中

时间:2014-10-28 14:07:32

标签: excel db2 export export-to-excel

我想在DB2 10.1中编写一组100个选择查询,以返回数据库中每个表中的所有行,并将结果导出到excel电子表格,每个结果集都有一个新选项卡。

这是可能的,如果可以,我该怎么办?

目前我能做到这一点的唯一方法就是导出每个结果集,然后通过复制每个标签手动创建多标签电子表格。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用EasyXLS API for Excel和VB脚本等脚本语言 VBS代码应与此类似:

'The class that exports result set to Excel file
 Set xls = CreateObject("EasyXLS.ExcelDocument")

' The class used to format the cells
Dim xlsAutoFormat 
set xlsAutoFormat = CreateObject("EasyXLS.ExcelAutoFormat")
xlsAutoFormat.InitAs(AUTOFORMAT_EASYXLS1)

For query = 1 To 100

   ' Add a new sheet
   xls.easy_addWorksheet_2("Sheet" & query)
   set xlsSheet = xls.easy_getSheetAt(query - 1)

   ' Create the record set object
   Dim objResultSet
   Set objResultSet = CreateObject("ADODB.Recordset") 
   objResultSet.Open queryString, objDBConnection

   ' Create the list that will store the values of the result set
   Dim lstRows 
   Set lstRows = CreateObject("EasyXLS.Util.List")

  ' Add the header to the list
  Dim lstHeaderRow 
  Set lstHeaderRow = CreateObject("EasyXLS.Util.List")
  lstHeaderRow.addElement("Column 1")
  lstHeaderRow.addElement("Column 2")
  lstHeaderRow.addElement("Column 3")
  lstRows.addElement(lstHeaderRow)

  ' Add the values from the database to the list
  Do Until objResultSet.EOF = True
     set RowList = CreateObject("EasyXLS.Util.List")
     RowList.addElement("" & objResultSet("Column 1"))
     RowList.addElement("" & objResultSet("Column 2"))
     RowList.addElement("" & objResultSet("Column 3"))
     lstRows.addElement(RowList)

     ' Move to the next record
     objResultSet.MoveNext
  Loop 

  xlsSheet.easy_insertList_2 lstRows, xlsAutoFormat

Next

' Export result sets to Excel file
xls.easy_WriteXLSFile("c:\Result sets.xls")

请查看此链接,了解exporting lists of data to Excel

如果您将选择非脚本语言,则API具有直接从结果集插入数据的方法,并且列表可以被删除。检查另一个示例here