programing

C# 및 Excel 행 삭제

magicmemo 2023. 6. 30. 22:14
반응형

C# 및 Excel 행 삭제

양식(C#)에서 엑셀 스프레드시트로 작성하고 공백인 경우 특정 행을 삭제하고 싶습니다.

나는 스프레드시트에 완벽하게 잘 쓰고 저장할 수 있지만, 사용자가 a1, a2, a3, a4 행에 데이터를 입력했다고 가정하면, 이제 a4와 a29 사이의 모든 행을 삭제하려고 합니다.

제가 필요한 것은 특정 범위의 세포를 삭제하는 방법을 찾는 것입니다.

감사해요.

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

이거 쓰셔도 돼요.전 일을 못 해요...

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

자세한 내용은 이 웹 사이트를 방문하십시오.

범위 개체를 사용하여 이 작업을 수행할 수 있습니다.여기서는 당신이 엑셀 interop을 사용하고 있다고 가정합니다.

책을 연 다음 범위를 설정하고 삭제합니다. 이렇게 보여야 합니다.

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

셀을 지정할 수 있습니다(예: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();

위의 지정된 코드는 시트 1에서 첫 번째 행을 삭제합니다.

행을 제거하려면 다음과 같이 간단한 코드 행만 있으면 됩니다.

xlWorkSheet.Rows[NUMBER_ROW].Delete();

Microsoft.office를 사용합니다.interop.sys 워크시트 범위를 사용하여 행 삭제

Excel.Application xlApp = new Excel.Application();
        Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(srcFile);
        Excel.Worksheet workSheet = xlWorkbook.Sheets[1];
        Excel.Range range = workSheet.Rows[2];
        
        range.Delete();
        
        xlWorkbook.SaveAs(dstFile);
        xlWorkbook.Close();
        xlApp.Quit();

언급URL : https://stackoverflow.com/questions/12255166/c-sharp-and-excel-deleting-rows

반응형