2017-03-14 7 views
0

Kann jemand eine neue Spalte in ein bereits vorhandenes Arbeitsblatt einfügen?So fügen Sie eine Excel-Spalte zum Arbeitsblatt hinzu

Meine aktuelle Lösung ist jetzt, eine neue Excel-Datei zu erstellen, indem Sie alle Spalten aus dem vorhandenen Excel kopieren, dann die neue Spalte in der Datentabelle hinzufügen und dann exportieren, um ein neues Excel zu erstellen. Diese Methode ist etwas mühsam und nur die neue Spalte zu dem bereits vorhandenen Excel hinzuzufügen ist der beste Weg, den ich sehe.

Hier ist meine Funktion eine neue Excel-

public static void ExportToExcel(DataTable tbl) 
    { 
     try 
     { 
      string dateNow = String.Format("{0:MM_dd_yyyy HH_mm_ss}", DateTime.Now); 
      string excelFilePath = "C:\\The_Excel_File\\Result_" + dateNow; 


      if (tbl == null || tbl.Columns.Count == 0) 
       throw new Exception("ExportToExcel: Null or empty input table!\n"); 

      // load excel, and create a new workbook 
      var excelApp = new Microsoft.Office.Interop.Excel.Application(); 
      excelApp.Workbooks.Add(); 

      // single worksheet 
      Microsoft.Office.Interop.Excel._Worksheet workSheet = excelApp.ActiveSheet; 

      // column headings 
      for (var i = 0; i < tbl.Columns.Count; i++) 
      { 
       workSheet.Cells[1, i + 1] = tbl.Columns[i].ColumnName; 
      } 

      // rows 
      for (var i = 0; i < tbl.Rows.Count; i++) 
      { 
       // to do: format datetime values before printing 
       for (var j = 0; j < tbl.Columns.Count; j++) 
       { 
        workSheet.Cells[i + 2, j + 1] = tbl.Rows[i][j]; 
       } 
      } 

      // check file path 
      if (!string.IsNullOrEmpty(excelFilePath)) 
      { 
       try 
       { 
        workSheet.SaveAs(excelFilePath); 
        excelApp.Quit(); 
        //MessageBox.Show("Excel file saved!"); 
       } 
       catch (Exception ex) 
       { 
        throw new Exception("ExportToExcel: Excel file could not be saved! Check filepath.\n" 
             + ex.Message); 
       } 
      } 
      else 
      { // no file path is given 
       excelApp.Visible = true; 
      } 
     } 
     catch (Exception ex) 
     { 
      throw new Exception("ExportToExcel: \n" + ex.Message); 
     } 
    } 

Antwort

0

öffnen bestehende und Spaltenanzahl und Rowcount Blatt Excel-Datei zum Erstellen bekommen Blattbereich verwendet, um, wie unten und verdeckte diese Werte angegeben Rangeaddress Blatt zeichnen bestehende zu schreiben

Sheet.UsedRange.Columns.Count 

Sheet.UsedRagne.Rows.Count 
Verwandte Themen