【发布时间】:2015-07-10 00:14:15
【问题描述】:
我有一个格式化的 Excel 目标,其中一列是百分比,另一列是货币。我正在使用 SSIS 使用 sql 表中的数据加载这个 excel。但是加载后没有格式化excel。发生了什么?
【问题讨论】:
-
您的问题缺少一些关键的细节点:SQL Server 版本、Excel 文件格式版本以及您正在应用的步骤。
标签: excel ssis formatting
我有一个格式化的 Excel 目标,其中一列是百分比,另一列是货币。我正在使用 SSIS 使用 sql 表中的数据加载这个 excel。但是加载后没有格式化excel。发生了什么?
【问题讨论】:
标签: excel ssis formatting
我能够从 Visual Studio 2010 中创建的 SSIS 包中将两列信息(百分比和美元值)导出到 Excel 文件(97-2003 格式)。数据来自使用 SQL Server 的服务器上的表2012.
步骤:
创建了一个 Excel 文件,其中包含一个名为 Percent 的列和另一个名为 Cost 的列。两者都进行了相应的格式化并位于第一行。
将文件保存为 97-2003 格式,然后将其关闭。
在数据库中创建了一个表并填充了几条记录。
insert into test_export values (2.1, 50.00)
insert into test_export values (4.5, 120.00)
打开 Visual Studio 2010 并创建了一个新的 SSIS 包。已创建到数据库的 OLEDB 连接。
在控制流选项卡下添加了一个数据流任务,添加后双击它。现在应该会突出显示“数据流”选项卡。
添加一个 OLE DB 源并指向新添加的数据库连接,在数据访问模式下选择表或视图,然后选择在步骤 #3 中创建的表。选择确定按钮。
添加一个 Excel 目标,确保为其创建一个新的 Excel 连接管理器并指向 Sheet1$。确保指出第一行包含标题。选择确定按钮并将 OLE DB 源任务连接到下面的 Excel 目标任务。由于只涉及数字,因此无需在两者之间应用数据转换任务。但在 Excel 目标任务中,请记住选择映射并从左到右连接哪些源列与哪些目标列匹配。
在“解决方案资源管理器”窗格中,右键单击解决方案并从下拉菜单中选择“属性”。打开左侧的配置属性并在其下选择调试。在 Debug Options 下的右侧,查找 Run64BitRuntime 并将其从 True 更改为 False(如果您尚未这样做)。选择确定按钮。
运行 SSIS 包。
当所有任务都显示为绿色表示已完成时,停止 SSIS 包。
打开 Excel 文件,它现在将包含从数据库表中导入的值,其中 Excel 百分比和美元格式在步骤 #1 中保留。
我在测试中运行了这些步骤,一切正常。如果您的格式没有被保留,那么您可能会遗漏一个步骤。
希望这会有所帮助,如果它回答了您的问题,请说明。
【讨论】:
我遇到了同样的问题。我所做的是:
如果您的模板在 ssis 开始导出数据的位置之前包含多行,则您可能需要更多的模型行。 (我需要 4 个)。无论您从哪里开始导出,这些行都必须是文档中的第一行。
【讨论】: