我有一个c#工具可以创建excel工作表,稍后会再用另一个工具读取它。这是通过使用excel interop完成的。
在读取生成的excel文件时,出现异常:OleDbException:定义的字段太多。
这意味着无法读入文件,因为有太多列,但不应该,因为真实内容只需要大约90列。作为一种解决方法,我在excel中手动删除了所有其他列,并再次尝试将其读入。 这按预期工作,这意味着生成的excel确实包含非空单元格(在excel中显示为空单元格)。
有没有办法告诉inerop不要创建空单元格,还是有其他原因我应该检查?
非常感谢 汤姆
PS:我遇到了2003互操作库的问题,而我安装了Office 2007.
答案 0 :(得分:0)
我找到了解决方案: 该工具正在将范围从一张纸复制到另一张纸。
源范围已正确定义: GetRange(fromWorkbookName,fromSheetName,A1,V20);
目标单元格通过以下方式解决: GetRange(toWorkbookName,toSheetName,A1).EntireRow;
在2003年的互操作中,这似乎没有问题。 在针对xslx文件i Office 2010执行此操作时,会创建一些包含“#N / A”的“空”字段。
令人讨厌的讨厌......
无论如何该工具没有正确地进行复制/粘贴(即使excel本身也会在手动将范围复制到整行时发出警告)。在纠正之后它似乎有效....