2011-02-11 83 views
0

我有一個c#工具,可以創建excel工作表,稍後再由另一個工具讀入。這是通過使用excel interop完成的。Excel互操作寫入包含「空」單元格的excel文件

當讀取生成的excel文件時,出現以下異常:OleDbException:定義的字段過多。

這意味着該文件無法讀入,因爲列太多,但不應該有,因爲真正的內容只需要大約90列。作爲一種解決方法,我在Excel中手動刪除所有其他列,然後再次嘗試讀取它。 按預期工作,這意味着生成的Excel包含非空單元格(在Excel中顯示爲空單元格... )

有沒有辦法告訴inerop不要創建空單元格,還是有其他原因我應該檢查?

非常感謝 湯姆

PS:我遇到了這個問題,2003年的互操作庫,而我有安裝Office 2007。

回答

0

我發現解決方案: 該工具正在複製從一張紙到另一張紙的範圍。

源範圍被正確定義: GetRange(fromWorkbookName,fromSheetName,A1,V20);

目標單元格被以下內容所壓縮: GetRange(toWorkbookName,toSheetName,A1).EntireRow;

2003年interop,這似乎沒有問題。 對Office 2010中的xslx文件執行此操作時,會創建一些包含「#N/A」的「空白」字段。

討厭討厭...

無論如何工具沒有被正確執行復制/粘貼(甚至優於自身提醒你,當你手動複製一個範圍的整條生產線)。糾正後這似乎工作....

相關問題