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