14

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

我可以很好地写入电子表格并保存它,但是假设用户将数据输入到行 a1、a2、a3 和 a4,我现在想删除 a4 和 a29 之间的所有行。

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

谢谢

4

5 回答 5

12
// 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();
于 2017-11-07T06:14:20.390 回答
9

您可以使用范围对象来做到这一点。我在这里假设您使用的是 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();
于 2012-09-04T00:03:49.450 回答
9

你可以使用这个。它的工作...

    _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();

有关更多信息,您可以访问网站

于 2013-02-01T08:08:39.003 回答
3

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

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 中删除第一行

于 2017-10-06T05:57:03.050 回答
1

要删除一行,您只需要一行简单的代码,如下所示

xlWorkSheet.Rows[NUMBER_ROW].Delete();
于 2019-08-13T08:15:36.683 回答