Excel interop写入包含“空”单元格的excel文件

时间:2011-02-11 13:33:13

标签: c# excel interop

我有一个c#工具可以创建excel工作表,稍后会再用另一个工具读取它。这是通过使用excel interop完成的。

在读取生成的excel文件时,出现异常:OleDbException:定义的字段太多。

这意味着无法读入文件,因为有太多列,但不应该,因为真实内容只需要大约90列。作为一种解决方法,我在excel中手动删除了所有其他列,并再次尝试将其读入。 这按预期工作,这意味着生成的excel确实包含非空单元格(在excel中显示为空单元格)。

有没有办法告诉inerop不要创建空单元格,还是有其他原因我应该检查?

非常感谢 汤姆

PS:我遇到了2003互操作库的问题,而我安装了Office 2007.

1 个答案:

答案 0 :(得分:0)

我找到了解决方案: 该工具正在将范围从一张纸复制到另一张纸。

源范围已正确定义: GetRange(fromWorkbookName,fromSheetName,A1,V20);

目标单元格通过以下方式解决: GetRange(toWorkbookName,toSheetName,A1).EntireRow;

在2003年的互操作中,这似乎没有问题。 在针对xslx文件i Office 2010执行此操作时,会创建一些包含“#N / A”的“空”字段。

令人讨厌的讨厌......

无论如何该工具没有正确地进行复制/粘贴(即使excel本身也会在手动将范围复制到整行时发出警告)。在纠正之后它似乎有效....

相关问题