从 SQL 任务导出到 Excel
Export to Excel from SQL task
我需要从 Sybase 数据库中提取信息并将其放入 Excel 文件中。由于此提取使用子查询,我正在使用 SQL 任务来提取信息并将其放入变量(数据类型 = 对象)。所以,我需要从变量中获取数据并将其保存到 Excel 文件中。这是我到目前为止所拥有的:
解决方法如下:
然后编辑脚本,在main函数中添加如下代码:
Public Sub Main()
'
' Add your code here
'
Dim varExcelApplication As Object
Dim varExcelBook As Object
Dim varExcelSheet As Object
Dim varNumeroFila As Integer
Dim varNumeroColumna As Integer
Dim varResults As DataSet
Dim varRow As DataRow
Dim varColumn As DataColumn
Try
' Crea la instancia de Excel
varExcelApplication = CreateObject("Excel.Application")
varExcelBook = varExcelApplication.Workbooks.Add()
varExcelSheet = varExcelBook.ActiveSheet
varExcelApplication.Visible = False
varExcelApplication.DisplayAlerts = False
' Carga los resultados del query
varResults = CType(Dts.Variables("varRecordSetEstimaciones").Value, DataSet)
For Each varTabla As DataTable In varResults.Tables
varNumeroFila = 1
For Each varRow In varTabla.Rows
varNumeroColumna = 1
For Each varColumn In varTabla.Columns
' Añade la cabecera para la primera fila
If varNumeroFila = 1 Then
varExcelSheet.Cells(1, varNumeroColumna) = varColumn.ColumnName.ToString
End If
varExcelSheet.Cells(varNumeroFila + 1, varNumeroColumna) = varRow(varColumn.Ordinal).ToString
varNumeroColumna = varNumeroColumna + 1
Next
varNumeroFila = varNumeroFila + 1
Next
Next
' Guarda el archivo
varExcelBook.SaveAs(Dts.Variables("varPath").Value.ToString & "\Estimaciones.xlsx")
varExcelApplication.Workbooks.Close()
varExcelApplication.Quit()
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
MsgBox(ex.Message)
Dts.TaskResult = ScriptResults.Failure
End Try
End Sub
我需要从 Sybase 数据库中提取信息并将其放入 Excel 文件中。由于此提取使用子查询,我正在使用 SQL 任务来提取信息并将其放入变量(数据类型 = 对象)。所以,我需要从变量中获取数据并将其保存到 Excel 文件中。这是我到目前为止所拥有的:
解决方法如下:
然后编辑脚本,在main函数中添加如下代码:
Public Sub Main()
'
' Add your code here
'
Dim varExcelApplication As Object
Dim varExcelBook As Object
Dim varExcelSheet As Object
Dim varNumeroFila As Integer
Dim varNumeroColumna As Integer
Dim varResults As DataSet
Dim varRow As DataRow
Dim varColumn As DataColumn
Try
' Crea la instancia de Excel
varExcelApplication = CreateObject("Excel.Application")
varExcelBook = varExcelApplication.Workbooks.Add()
varExcelSheet = varExcelBook.ActiveSheet
varExcelApplication.Visible = False
varExcelApplication.DisplayAlerts = False
' Carga los resultados del query
varResults = CType(Dts.Variables("varRecordSetEstimaciones").Value, DataSet)
For Each varTabla As DataTable In varResults.Tables
varNumeroFila = 1
For Each varRow In varTabla.Rows
varNumeroColumna = 1
For Each varColumn In varTabla.Columns
' Añade la cabecera para la primera fila
If varNumeroFila = 1 Then
varExcelSheet.Cells(1, varNumeroColumna) = varColumn.ColumnName.ToString
End If
varExcelSheet.Cells(varNumeroFila + 1, varNumeroColumna) = varRow(varColumn.Ordinal).ToString
varNumeroColumna = varNumeroColumna + 1
Next
varNumeroFila = varNumeroFila + 1
Next
Next
' Guarda el archivo
varExcelBook.SaveAs(Dts.Variables("varPath").Value.ToString & "\Estimaciones.xlsx")
varExcelApplication.Workbooks.Close()
varExcelApplication.Quit()
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
MsgBox(ex.Message)
Dts.TaskResult = ScriptResults.Failure
End Try
End Sub