Iam che esporta un DataTable in un file Excel utilizzando l'interoperabilità di Office. Il problema è che Excel non riconosce le date come tali, ma visualizza numeri. In un altro caso, passo una stringa che poi riconosce come data. In entrambi i casi i dati sono incasinati.Come formattare la data corretta durante la scrittura dei dati in Excel
Ho provato NumberFormat @ che dovrebbe memorizzare la cella in formato testo, ma non ha funzionato neanche.
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();
Perché non il mio NumberFormat @ work? Non dovrebbe Textformat visualizzare tutto come ho messo?
La formattazione di ogni cella separatamente non dovrebbe essere diversa. Come posso formattare correttamente tutto come testo? – codymanix
Se si desidera che Excel consideri la colonna come una colonna di data, dovrebbe avere un formato di data, altrimenti accadranno cose strane, che hai già sperimentato. Tuttavia, puoi fare riferimento alla mia ultima modifica per un'altra possibile soluzione alternativa. – dcp