繁体   English   中英

C#Excel InterOp:删除第2行以下的所有行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM