[英]C# Excel InterOp: Deleting All Rows Below Row 2
这应该不难,但是到目前为止,我发现的每个解决方案都无法正常工作。 基本上,我使用C#控制台应用程序填充从第3行开始的Excel工作表。 填充部分有效,但我需要做的是删除所有行,并从第3行开始删除其数据。这是到目前为止的代码:
Excel.Range xlRange = xlWorkSheet.UsedRange;
for (int j = 3; j <= xlRange.Rows.Count; j++)
{
/// xlRange.Rows[j].EntireRow.Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
xlRange.Rows[j].Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
}
注意,注释掉的代码和功能代码都无法生成类似Delete函数的信息。
谢谢!
更新1看起来以下内容确实在另一个Excel文件的循环中起作用; 因此,其他Excel文件上存在某种锁定。
((Excel.Range)xlWorkSheet.Rows[j]).Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
更新2
因此,是的,奇怪的是原始XLS文件受密码保护,而我还没有密码。 该文件允许我写入新值,而覆盖现有值则不允许删除行!
以下内容对我来说很好,但由于所需文件的密码保护(如我对“问题”的“更新”所述),因此无法在所需文件上使用。 所需文件中包含宏,因此我不能简单地使用诸如上载到Google文档等的变通方法。
高温超导
((Excel.Range)xlWorkSheet.Rows[j]).Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.