这应该不难,但到目前为止,我发现的每个解决方案都不起作用。基本上,我使用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);
}
注意,注释掉代码和功能代码都会产生类似删除功能的内容。
谢谢!
更新1 看起来以下内容在另一个Excel文件的循环中有效;所以在其他Excel文件上有某种锁定。
((Excel.Range)xlWorkSheet.Rows[j]).Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
更新2
所以,是的,奇怪的是原始的XLS文件受密码保护,我还没有密码。该文件允许我编写新值并覆盖现有值并不允许我删除行!!
答案 0 :(得分:0)
以下对我来说很好,但不适用于所需文件,因为该文件的密码保护,如我的更新&#39;问题。所需文件中有宏,因此我无法简单地使用上传到Google文档等解决方法。
HTH
((Excel.Range)xlWorkSheet.Rows[j]).Delete(Excel.XlDeleteShiftDirection.xlShiftUp);