电子表格已满

时间:2014-04-25 00:49:39

标签: excel ssis

我使用SSIS将数据插入Excel。

我得到以下例外:

'[Excel Destination [32]] Error: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft Office Access Database Engine"  Hresult: 0x80004005  Description: "Spreadsheet is full.".'

我使用以下链接进行了一些研究:

http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010073849.aspx

它声明您可以填充1,048,576 rows by 16,384 columns

的最大值

我导入Excel的数据仅约为100,000 rows by 5 columns

为什么我会收到此异常?

仅供参考,以下是我的Data Flow Task

ODBC SourceData Conversion转换为Excel Destination

3 个答案:

答案 0 :(得分:6)

最好的解决方法是使用Flat File Destination,然后直接从Excel导入Flat File。事实证明,使用SSIS导入Excel非常慢,效果要好得多。这项工作几乎是瞬间导入我的数据而不是等半个小时。

答案 1 :(得分:3)

我通过将文件更改为xlsx并将excel版本(属性excel连接管理器)更改为Excel 2007-2010进行排序

答案 2 :(得分:1)

我通过创建一个空的EXCEL文件解决了这个问题,该文件包含了在转换过程中应该填充的所有列,并在Excel文件中的这些列中创建了一个表。因此,您可以通过选择列并单击“格式为表格”选项来执行此操作。 Excel文件准备好后,您可以将其保存为xlsx扩展名并尝试再次加载该Excel文件。现在,您将能够加载包含更多行数的excel文件。