Iam Exportieren einer DataTable in eine Excel-Datei mit Office-Interop. Das Problem ist, dass Excel Daten nicht als solche erkennt, sondern Zahlen anzeigt. In einem anderen Fall übergebe ich einen String, den er dann als Datum erkennt. In beiden Fällen sind die Daten durcheinander.So erstellen Sie das richtige Datumsformat beim Schreiben von Daten nach Excel
Ich habe NumberFormat @ versucht, das die Zelle im Textformat speichern soll, aber es hat auch nicht funktioniert.
Application app = new Application();
app.Visible = false;
app.ScreenUpdating = false;
app.DisplayAlerts = false;
app.EnableAnimations = false;
app.EnableAutoComplete = false;
app.EnableSound = false;
app.EnableTipWizard = false;
app.ErrorCheckingOptions.BackgroundChecking = false;
Workbook wb = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)wb.Worksheets[1];
for (int j = 0; j < dt.Rows.Count; j++)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
Range rng = ws.Cells[j+2, i+1]as Range;
rng.Value2 = dt.Rows[j][i].ToString();
rng.NumberFormat = "@";
}
}
wb.SaveAs(filename, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, XlSaveAsAccessMode.xlExclusive, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
wb.Close(false, Missing.Value, Missing.Value);
app.Workbooks.Close();
app.Application.Quit();
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);
System.Runtime.InteropServices.Marshal.ReleaseComObject(wb);
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
ws = null;
wb = null;
app = null;
GC.Collect();
Warum funktioniert mein NumberFormat @ nicht? Sollte Textformat nicht alles genauso anzeigen, wie ich es eingegeben habe?
Formatieren jeder Zelle separat sollte nicht anders sein. Wie kann ich alles richtig als Text formatieren? – codymanix
Wenn Sie möchten, dass Excel die Spalte als Datumsspalte behandelt, sollte sie wirklich ein Datumsformat haben, sonst werden seltsame Dinge passieren, die Sie bereits erlebt haben. Sie können jedoch für eine andere mögliche Problemumgehung auf meine letzte Änderung verweisen. – dcp