read officeopenxml ejemplos create c# epplus

c# - officeopenxml - Formato de fecha de Excel usando EPPlus



excelpackage save file c# (4)

Algunas noticias:

ws.Cells ["A3"]. Style.Numberformat.Format = "[$ -en-US] yyyy-mmm-dd";
ws.Cells ["A3"]. Formula = "= DATE (2014,10,5)";

Tengo problemas con formatear mis celdas hasta la Fecha.

FileInfo info = new FileInfo(path); using (ExcelPackage package = new ExcelPackage(info)) { ExcelWorksheet ws = package.Workbook.Worksheets.Add(sheetName); ws.Cells[3, 1].Style.Numberformat.Format = "yyyy-mm-dd"; ws.Cells["A3"].Formula = "=DATE(2014,10,5)"; }

Salida de esto en Excel: 41 917,00

¿Por qué esto no funciona?


Estoy de acuerdo con Yosoyke. Probablemente estés apuntando a las celdas incorrectas. Tratar:

ws.Cells["A3"].Style.Numberformat.Format = "yyyy-mm-dd"; ws.Cells["A3"].Formula = "=DATE(2014,10,5)";


worksheet.Cells ["YOURDATECELL_OR_YOURDATECELLRANGE"]. Style.Numberformat.Format = "mm-dd-yy";

si usas la fórmula mencionada por taraz. agregue hoja de cálculo. Calcule () al final. referencia https://epplus.codeplex.com/wikipage?title=About%20Formula%20calculation

O en lugar de usar fórmula, enfoque alternativo

private static decimal GetExcelDecimalValueForDate(DateTime date) { DateTime start = new DateTime(1900, 1, 1); TimeSpan diff = date - start; return diff.Days + 2; }

Reference

worksheet.Cells["A2"].Value = GetExcelDecimalValueForDate(Convert.ToDateTime(''2016-04-29'')); worksheet.Cells["A2"].Style.Numberformat.Format = "mm-dd-yy";//or m/d/yy h:mm

De forma predeterminada, cuando Excel guarda un campo de fecha, lo guarda como numFormatId 14 (Mire los archivos xml en xls). Esto asegura los formatos de fecha correctamente en cualquier país cuando se abre el archivo. En Epplus, mm-dd-yy se traduce en numFormatId 14 para Excel. Esto asegurará que cuando se abra el archivo en cualquier país, la fecha se formateará correctamente según la configuración de fecha corta del país. También noté que m / d / aa h: mm formatea correctamente para cualquier país.


var dateColumns = from DataColumn d in dt.Columns where d.DataType == typeof(DateTime) || d.ColumnName.Contains("Date") select d.Ordinal + 1; foreach (var dc in dateColumns) { worksheet.Cells[2, dc, rowCount + 2, dc].Style.Numberformat.Format = "mm/dd/yyyy hh:mm:ss AM/PM"; }

formateará todas las columnas con el encabezado Fecha a un formato específico dado / proporcionado