我使用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 Source
到Data Conversion
转换为Excel Destination
答案 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文件。