Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 SQL Server 2005 SSIS数据传输SQL到Excel会损坏Excel文件_Sql Server 2005_Excel_Ssis_Export_Corruption - Fatal编程技术网

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

Sql server 2005 SQL Server 2005 SSIS数据传输SQL到Excel会损坏Excel文件,sql-server-2005,excel,ssis,export,corruption,Sql Server 2005,Excel,Ssis,Export,Corruption,我有一个SSIS包,它将数据从SQLServer2005数据库的表导出到Excel电子表格。 有问题的电子表格有15张表,我正在尝试填充其中一张表上的值 我有一个模板文件,我将其克隆为导出的目标(一个简单的文件系统任务)。此模板文件有效且未损坏 然后我有了数据流任务,它使用SQL查询作为数据源。如果我预览一下,一切都很好。然后,我删除除一列之外的所有列(int数据类型) 我有一个excel数据源(这是上面提到的目标电子表格),我将这两个数据源链接在一起,并在选定的单列中进行传递。当我预览时,我得

我有一个SSIS包,它将数据从SQLServer2005数据库的表导出到Excel电子表格。 有问题的电子表格有15张表,我正在尝试填充其中一张表上的值

我有一个模板文件,我将其克隆为导出的目标(一个简单的文件系统任务)。此模板文件有效且未损坏

然后我有了数据流任务,它使用SQL查询作为数据源。如果我预览一下,一切都很好。然后,我删除除一列之外的所有列(int数据类型)

我有一个excel数据源(这是上面提到的目标电子表格),我将这两个数据源链接在一起,并在选定的单列中进行传递。当我预览时,我得到的第一个提示是有问题:

显示预览时出错。

其他信息:

索引和长度必须指字符串中的位置。

参数名称:长度(mscorlib)

当我运行包时,它通过ok,报告我有一行被复制。打开电子表格时,出现以下错误:

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

然而,电子表格仍然会加载,当我转到我一直试图填充的工作表时,它已使用不同工作表中的文本创建了一个新列

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

我最初的想法是,这可能是一个问题,因为没有部署service pack,但我在SQL 2005 RTM和SP3安装中观察到了这种行为,我有点卡住了

我将非常感谢任何有类似经历并可能提供帮助的人。谢谢

我有一个excel数据源(这是上面提到的目标电子表格),我将这两个数据源链接在一起,并在选定的单列中进行传递。当我预览时,我得到的第一个提示是有问题:

显示预览时出错

其他信息:

索引和长度必须引用字符串中的位置

参数名称:长度(mscorlib)

当我运行包时,它通过ok,报告我有一行被复制。打开电子表格时,出现以下错误:

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


您是否尝试重新创建此目标组件?这是一个很好的起点,听起来它已经变得腐败了(不确定腐败是否是一个合适的词,但在我发现的SSI中它经常发生)。在探索其他可能性之前,我通常会尝试更换有问题的组件。

我们找到了问题的根源

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

因此,0被放置在列为数字的单元格中,日期列的每个单元格中都有一个日期,所有文本列都有一个撇号(')

后者并不是绝对必要的,当它们被移除时,电子表格似乎开始工作

然而,其特点是,电子表格在整个运输环境中工作正常。只有在当地开发期间,问题才出现


如果有人能进一步解释为什么会这样,那我们将不胜感激。

我在预览中遇到了完全相同的错误:

“索引和长度必须引用字符串中的位置

参数名称:长度(mscorlib)”


Excel文件中的一个工作表名包含空格字符和连字符。哪张工作表有空格或连字符并不重要,因为我必须删除所有空格或连字符才能使用预览。

当我尝试使用SSIS查看Excel文件的预览时,会出现此消息

我找到的解决方案是更改工作表的名称


它必须以字母开头,您必须删除所有空格。

不同意“属于serverfault.com”的结束投票。这是开发环境中的编程问题。代码还没有到达任何服务器。谢谢你的回复。尝试有用的东西,因此+1,但没有解决我的问题。我最终完全替换了数据流任务,但同样的问题也发生了。不过,我已经设法消除了预览错误。从Excel中的工作表名称中删除空格似乎可以做到这一点,尽管我并不完全相信。啊,是的,我也注意到它不喜欢工作表名称中的空格。