如何从电子表格中删除过滤的数据?

只是我一直在努力的一直在窃听我,我不禁认为别人会指出我一个简单的解决scheme。

我正在写的一部分程序涉及以下内容:

我有一个C#程序,使用autosort将一系列filter应用于电子表格。 已经sorting的数据,我想删除,目前它是这样做使用specialcells,但我认为我的方法不是辉煌。

在删除数据之前,我摆脱了第一行,这是我的标题,不包括在删除。 然而,这可能会导致一个问题,如果我删除标题和过滤的数据实际上没有更多的返回0行,那么当我打电话给我的specialcell删除它会标记出某种错误,说明没有范围。 最好的解决scheme是什么,理想情况下,我可以抓住过滤的范围,并检查数据是否有超过1行,但是我正在尝试的属性,如rows.count标记错误的数据types。 这是我的代码的简化版本

Excel.Range AllRange = mySheet.UsedRange; Excel.Range filtered = AllRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeVisible, Type.Missing); if (//SOME SORT OF COUNT SHOULD GO HERE IM GUESSING > 1) { mySheet.Rows.EntireRow[1].Hidden = true; filtered = mySheet.UsedRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeVisible, Type.Missing); filtered.EntireRow.Delete(Excel.XlDirection.xlUp); mySheet.Rows.EntireRow[1].Hidden = false; } 

这样的事情,我希望有帮助。 感谢您就此事提供的任何build议。

我find了一个可行的解决scheme。 基本上你想要在Areas.Count

 Excel.Range AllRange = mySheet.UsedRange; Excel.Range filtered = AllRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeVisible, Type.Missing); long colstuff = filtered.Areas.Count; if (colstuff > 1) { mySheet.Rows.EntireRow[1].Hidden = true; filtered = mySheet.UsedRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeVisible, Type.Missing); filtered.EntireRow.Delete(Excel.XlDirection.xlUp); mySheet.Rows.EntireRow[1].Hidden = false; }