SQL Server 2005 SSIS数据传输SQL到Excel损坏Excel文件

我有一个SSIS包,可以将数据从SQL Server 2005数据库中的表导出到Excel电子表格中。 有问题的电子表格有15张,我试图填充这些表格中的一个。

我有一个模板文件,我克隆成为导出的目标(一个简单的文件系统任务)。 这个模板文件是有效的,并没有损坏。

然后我有我的数据stream任务,它使用SQL查询作为数据源。 如果我预览这个,一切都很好。 然后我删除所有列中的一个(一个int数据types)。

我有一个Excel的数据源(这是上面提到的目标电子表格),我把这两个链接起来,在选定的单个列上进行。 当我预览,我得到的第一个暗示,有什么不对劲:

显示预览时出错。

附加信息:

索引和长度必须指向string内的一个位置。

参数名称:长度(mscorlib)

当我运行这个软件包的时候,它通过了,报告我有1行复制。 当我打开电子表格时,出现以下错误:

文件错误:数据可能已经丢失

电子表格仍然加载,但是当我去到我已经试图填充的工作表时,它创build了一个新的列,其中包含来自不同工作表的文本。

当我尝试使用SSIS包中的整个列表时,它似乎从电子表格的其他区域提取数据,这使我相信这个过程在某种程度上破坏了电子表格。

我最初的想法是,也许这是一个服务包尚未部署的事实,但我已经观察到SQL 2005 RTM和SP3上的这种行为安装,有点卡住了。

我会非常感谢谁有类似的经验,可以帮助的人。 谢谢

我们深究这一点。

为了以正确的格式显示数据,电子表格开发人员将一行隐藏的值作为电子表格的第一行。 如果你想让你的号码成为数字,这是你必须做的事情。

所以,一个0被放置在单元格的列是数字,date列的每个单元格中的date和所有文本列的撇号(')。

后者不是绝对必要的,当他们被删除,电子表格似乎开始工作。

然而,这一点的特殊之处在于电子表格在整个航运环境中工作正常。 只是在当地的发展过程中才出现了问题。

如果任何人可以更多地了解这是为什么,那么将非常感激。

我在预览中有完全相同的错误:

“索引和长度必须指向string中的一个位置。

参数名称:长度(mscorlib)“

Excel文件中的其中一个sheetname包含一个空白字符以及一个连字符。 哪个表格有空格或连字符并不重要,因为我必须删除所有这些才能使用预览。

我有一个Excel的数据源(这是上面提到的目标电子表格),我把这两个链接起来,在选定的单个列上进行。 当我预览,我得到的第一个暗示,有什么不对劲:

显示预览时出错。

附加信息:

索引和长度必须指向string内的一个位置。

参数名称:长度(mscorlib)

当我运行这个软件包的时候,它通过了,报告我有1行复制。 当我打开电子表格时,出现以下错误:

文件错误:数据可能已经丢失

你有没有尝试重新创build这个目标组件? 这将是一个很好的开始,它听起来像已经腐败(不知道如果腐败是适当的话,但它发生了很多我在SSIS发现)。 我通常尝试在探索其他可能性之前更换问题组件。

当我尝试使用SSIS查看Excel文件的预览时,此消息显示给我。

我find的解决scheme是更改工作表的名称。

它必须从一个字母开始,你必须删除所有的空格。