2015-07-10 86 views
-1

我有一个格式化的Excel目标,其中一列是百分比,另一列是货币。我使用SSIS从sql表中加载这个excel。但是,excel在加载后没有格式化。发生什么事?Excel格式通过SSIS填充时丢失

+0

您的问题缺少一些关键细节:SQL Server版本,Excel文件格式版本和您正在应用的步骤。 – user3662215

回答

0

我能够从Visual Studio 2010中创建的SSIS包中导出两列信息(百分比和美元值)到Excel文件(97-2003格式)。数据源自使用SQL的服务器上的表Server 2012的

步骤:

  1. 创建包含一列名为%,而另一个叫成本的Excel文件。两者都被相应地格式化,并位于第一行。

  2. 以97-2003格式保存文件,然后关闭它。

  3. 在数据库中创建一个表,并用一些记录填充它。

 
    create table test_export (
     mypercent numeric(18,2), 
     mydollar numeric(18,2))

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目标任务中,请记住选择映射并从左向右连接哪些源列匹配哪些目标列。

  • 在解决方案资源管理器窗格中,右键单击解决方案并从下拉菜单中选择属性。打开左侧的配置属性并在其下面选择调试。在调试选项下的右侧,查找Run64BitRuntime并将其从True更改为False,前提是您尚未这样做。选择确定按钮。

  • 运行SSIS包。

  • 当所有任务显示绿色已完成时,停止SSIS包。

  • 打开Excel文件,它现在将包含从数据库表导入的值,其中包含从步骤1中保留的Excel百分比和美元格式。

  • 我在测试中运行了这些步骤,所有工作都完美无缺。如果你的格式没有被保存,那么你可能会舍弃一步。

    希望这会有所帮助,并请指出它是否回答了您的问题。