SSIS 自动从数据库生成 Excel 文件
SSIS Automate Excel File Generation From Database
我在执行包时遇到问题。
我做了什么:
我创建了一个模板,其中只有 header,并且我有一个 table“产品”。我尝试使用 excel 模板将数据从“Product”table 插入 excel sheet。
我使用了 3 个变量。
流: 文件系统任务 => 数据流任务 => OLE DB 源 => Excel 目标。
错误:
[Excel 目标 [2]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E37。
[Excel 目标 [2]] 错误:打开“result$”的行集失败。检查数据库中是否存在 object。
[SSIS.Pipeline] 错误:“Excel 目的地”验证失败并返回验证状态“VS_ISBROKEN”。
谢谢
这是奇迹。我刚刚解决了这个错误...
您不需要创建模板(虚拟)excel,您只需要 3 个组件。
1.根据this教程创建Execute SQL Task
设置除 SQLStatement
以外的所有内容时,我建议创建 empty excel 并连接到 OLE DB 源(您的服务器 table)。当您添加 excel destination
并与 excel destination manager
连接时,您将看到 VS 询问您是否要像此查询一样创建 table(但具有不同的数据类型)的问题:
CREATE TABLE `Result` (
`ColName1` NVARCHAR(255),
`ColName2` NVARCHAR(255),
`ColName3` NVARCHAR(255),
`ColName4` NVARCHAR(255)
)
不知道我解释的对不对,教程里有上一步
2。执行这个任务
3。添加 Data Flow Task
与 OLE DB Source
和 Excel Destination
使用 OLE DB select 您需要的一切都来自您的 Product
table
将 Excel Destination
与 Excel Connection Manager
连接起来,就像在 Execute SQL Task
中一样。来自下拉 select Result
sheet name.
When you finish this delete this empty excel
4。创建一个包含路径和 excel 文件名
的变量
5.根据第一步的教程,单击 Excel Connection Manager
-> Properties -> Expressions -> ...(右侧)-> ExcelFilePath(从下拉列表中)。在第二列写@[User::YourVariableName]
关键一步
6.在控制流中,单击 Data Flow Task
并在 DelayValidation
的属性中设置 True
。
如果您有任何问题,请在下面的评论中写信给我。
我在执行包时遇到问题。
我做了什么:
我创建了一个模板,其中只有 header,并且我有一个 table“产品”。我尝试使用 excel 模板将数据从“Product”table 插入 excel sheet。 我使用了 3 个变量。
流: 文件系统任务 => 数据流任务 => OLE DB 源 => Excel 目标。
错误:
[Excel 目标 [2]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E37。
[Excel 目标 [2]] 错误:打开“result$”的行集失败。检查数据库中是否存在 object。
[SSIS.Pipeline] 错误:“Excel 目的地”验证失败并返回验证状态“VS_ISBROKEN”。
谢谢
这是奇迹。我刚刚解决了这个错误...
您不需要创建模板(虚拟)excel,您只需要 3 个组件。
1.根据this教程创建Execute SQL Task
设置除 SQLStatement
以外的所有内容时,我建议创建 empty excel 并连接到 OLE DB 源(您的服务器 table)。当您添加 excel destination
并与 excel destination manager
连接时,您将看到 VS 询问您是否要像此查询一样创建 table(但具有不同的数据类型)的问题:
CREATE TABLE `Result` (
`ColName1` NVARCHAR(255),
`ColName2` NVARCHAR(255),
`ColName3` NVARCHAR(255),
`ColName4` NVARCHAR(255)
)
不知道我解释的对不对,教程里有上一步
2。执行这个任务
3。添加 Data Flow Task
与 OLE DB Source
和 Excel Destination
使用 OLE DB select 您需要的一切都来自您的 Product
table
将 Excel Destination
与 Excel Connection Manager
连接起来,就像在 Execute SQL Task
中一样。来自下拉 select Result
sheet name.
When you finish this delete this empty excel
4。创建一个包含路径和 excel 文件名
的变量5.根据第一步的教程,单击 Excel Connection Manager
-> Properties -> Expressions -> ...(右侧)-> ExcelFilePath(从下拉列表中)。在第二列写@[User::YourVariableName]
关键一步
6.在控制流中,单击 Data Flow Task
并在 DelayValidation
的属性中设置 True
。
如果您有任何问题,请在下面的评论中写信给我。