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