Ich versuche, Datentabelle in Excel zu speichern, die in C# (SSIS ScriptTask) generiert wird.Excel nicht geöffnet generiert von C#
Unten ist mein Code:
OleDbDataAdapter A = new OleDbDataAdapter();
System.Data.DataTable dt = new System.Data.DataTable();
A.Fill(dt, Dts.Variables["User::ObjResultSet"].Value);
Excel.Application oXL = new Excel.ApplicationClass();
Excel.Workbooks oWBs = oXL.Workbooks;
Excel.Workbook oWB = null;
Excel.Worksheet oSheet;
oWB = oWBs.Count > 0 ? oWB = oWBs[0] : oWBs.Add(System.Reflection.Missing.Value);
oXL.DisplayAlerts = false;
oWB = oXL.Workbooks.Add(Missing.Value);
oSheet = (Excel.Worksheet)oWB.Worksheets[1];
int rowCount = 1;
foreach (DataRow dr in dt.Rows)
{
rowCount += 1;
for (int i = 1; i < dt.Columns.Count + 1; i++)
{
// Add the header time first only
if (rowCount == 2)
{
oSheet.Cells[1, i] = dt.Columns[i - 1].ColumnName;
}
oSheet.Cells[rowCount, i] = dr[i - 1].ToString();
}
}
oWB.SaveAs(Dts.Variables["User::ExcelPath"].Value, Excel.XlFileFormat.xlWorkbookNormal,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Excel.XlSaveAsAccessMode.xlExclusive,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value);
oWB.Close(false, Dts.Variables["User::ExcelPath"].Value, Missing.Value);
oWBs.Close();
oXL.Quit();
Dts.TaskResult = (int)ScriptResults.Success;
Welches Problem I bin vor, excel erzeugt wird. Aber wenn ich versuche, .xls
zu generieren, funktioniert es völlig in Ordnung. Aber das funktioniert nicht, wenn ich versuche, .xlsx
zu generieren.
Kann mir jemand helfen?
verwenden, das funktioniert !! Vielen Dank!! –