C#和Excel删除行

我想从我的表单(在C#中)写入Excel电子表格,并删除某些行如果空白。

我可以完美地写入一个speadsheet并保存它,但可以说用户input数据到行a1,a2,a3和a4,现在我想删除a4和a29之间的所有行。

我所需要的是找出如何删除一定范围的单元格。

谢谢

你可以使用Range对象来做到这一点。 我在这里假设你正在使用Excel互操作。

假设你打开了你的书,然后设置范围然后删除它应该看起来像这样

ApplicationClass excel = new ApplicationClass(); //Abrir libro y seleccionar la hoja adecuada aqui //... Microsoft.Office.Interop.Excel.Range cel = (Range)excel.Cells[rowIndex, columnIndex]; cel.Delete(); 

你可以使用这个。 İt的工作…

  _Application docExcel = new Microsoft.Office.Interop.Excel.Application { Visible = false }; dynamic workbooksExcel = docExcel.Workbooks.Open(@"C:\Users\mahmut.efe\Desktop\Book4.xlsx"); var worksheetExcel = (_Worksheet)workbooksExcel.ActiveSheet; ((Range)worksheetExcel.Rows[2, Missing.Value]).Delete(XlDeleteShiftDirection.xlShiftUp); workbooksExcel.Save(); workbooksExcel.Close(false); docExcel.Application.Quit(); 

欲了解更多信息,你可以访问这个网站

 // Here is the answers to // 1. Delete entire row - Below rows will shift up // 2. Delete few cells - Below cells will shift up // 3. Clear few cells - No shifting using Excel = Microsoft.Office.Interop.Excel; Excel.Application ExcelApp = new Excel.Application(); Excel.Workbook ExcelWorkbook = ExcelApp.Workbooks.Open(ResultFilePath); ExcelApp.Visible = true; Excel.Worksheet ExcelWorksheet = ExcelWorkbook.Sheets[1]; Excel.Range TempRange = ExcelWorksheet.get_Range("H11", "J15"); // 1. To Delete Entire Row - below rows will shift up TempRange.EntireRow.Delete(Type.Missing); // 2. To Delete Cells - Below cells will shift up TempRange.Cells.Delete(Type.Missing); // 3. To clear Cells - No shifting TempRange.Cells.Clear(); 

您可以指定一个单元格(例如A1),并find包含该单元格的整个行作为范围,然后可以删除该行。

excel.Worksheet sheet =(excel.Worksheet)excelWorkBook.Sheets [“sheet1”];

excel.Range cells =(excel.Range)sheet.Range [“A1”,Type.Missing];

excel.Range del = cells.EntireRow;

del.Delete();

上面给出的代码将从sheet1中删除第一行