yyyy-MM-gg formato data in Esporta in Excel

Esiste un modo per ottenere la sola data da UniversalSortableDateTimePattern usando questo nella funzione Esporta in Excel. Excel non accetta il formato della data ..
Devo visualizzare come aaaa-MM-gg. Qualche suggerimento sarà utile? Il mio codice come

dtASalesDrivers.Columns.Add(new System.Data.DataColumn("Start Date", typeof(String))); DateTime dt = Convert.ToDateTime(txtATrendStartDate.Text); drASalesDrivers[2] = string.Format("{0:yyyy-MM-dd}", dt); dtASalesDrivers.Rows.Add(drASalesDrivers); 

Modificare :

  DateTime dt = Convert.ToDateTime(txtATrendStartDate.Text); drASalesDrivers[2] = string.Format("{0:u}", dt); 

Questo visualizza sia la data che l’ora. C’è un modo per visualizzare solo la data ???

Penso che abbia a che fare con le impostazioni del tuo computer.

Se apri una nuova istanza di Excel e digiti 2012-07-24 e navighi lontano dalla cella, questa cambierà immediatamente al 24/07/2012 , più le impostazioni locali del tuo computer che qualsiasi cosa abbia a che fare con il tuo codice.

Puoi comunque formattare la cella a yyyy-mm-dd;@ quindi potresti aver bisogno di farlo a livello di programmazione e non cambiare altro, penso che questo possa funzionare:

 DateTime dt = Convert.ToDateTime(txtATrendStartDate.Text); drASalesDrivers[2] = string.Format("{0:u}", dt); drASalesDrivers[2].NumberFormat = "yyyy-mm-dd;@"; 

Ma non l’ho provato

Stavo facendo un po ‘di casino e qualche codice di esempio è qui sotto:

 using System.Runtime.InteropServices; using Microsoft.Office.Interop.Excel; namespace ConsoleApplication19 { class Program { static void Main(string[] args) { Application _excelApp = new Application(); Workbook workbook = _excelApp.Workbooks.Open(@"C:\test\New Microsoft Excel Worksheet.xlsx"); Worksheet sheet = (Worksheet)workbook.Sheets[1]; Range excelRange = sheet.get_Range("A1"); //If you comment the next line of code, you get '24/07/2012', if not you get '2012-07-24' excelRange.NumberFormat = "yyyy-mm-dd;@"; excelRange.Value2 = "2012-07-13"; workbook.Save(); workbook.Close(false, @"C:\test\New Microsoft Excel Worksheet.xlsx", null); Marshal.ReleaseComObject(workbook); } } } 

Inoltre, string.Format("{0:u}", dt); restituirà effettivamente una data e un’ora, dt.ToString("yyyy-MM-dd"); restituirà la tua data.

L’alrernativo è di modificare l’impostazione della Short date sul tuo computer in yyy-MM-dd in questo modo:

Impostazioni della data

Questo farà apparire la tua data come vuoi per default su Excel sul tuo computer, ma avrà un aspetto diverso su computer diversi.

ecco il mio codice, me ne accorgo seguendo il codice:

  Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1]; Microsoft.Office.Interop.Excel.Range excelRange; excelRange = worksheet.get_Range("H2", System.Reflection.Missing.Value); excelRange.NumberFormat = "yyyy-MM-dd;@";