functions - Cómo representar un DateTime en Excel
time in excel (8)
¿Cuál es la mejor manera de representar un DateTime
en Excel? Usamos Syncfusions Essential XlsIO para generar valores en un documento de Excel que funciona muy bien. Pero no puedo entender cómo mostrar un DateTime
en una columna. No cuando lo hago yo mismo directamente en Excel tampoco. ¿Es imposible? ¿Debo usar una fecha separada y una columna de tiempo? Realmente desearía no haberlo hecho, porque se rompe la clasificación, etc ... a menos que Excel tenga algo inteligente para arreglar eso ...
Algunas versiones de Excel no tienen formatos de fecha y hora disponibles en las listas de selección estándar, pero puede ingresar una cadena de formato personalizado como aaaa-mm-dd hh: mm: ss de la siguiente manera:
- Haga clic derecho -> Formato de celdas
- Pestaña Número
- Elija la categoría personalizada
- Ingrese su cadena de formato personalizado en el campo "Tipo"
Esto funciona en mi Excel 2010
El tipo de datos subyacente de una fecha y hora en Excel es un número de coma flotante de 64 bits donde la duración de un día es igual a 1 y el 1 de enero de 1900 00:00 es igual a 1. Por lo tanto, el 11 de junio de 2009 a las 17:30 es aproximadamente 39975.72917.
Si una celda contiene un valor numérico como este, se puede convertir a una fecha y hora simplemente aplicando un formato de fecha y hora a la celda.
Entonces, si puede convertir sus fechas a números utilizando la fórmula anterior, envíelas a las celdas correspondientes y luego configure los formatos de celda en el formato de fecha y hora apropiado, por ejemplo, aaaa-mm-dd hh: mm: ss, entonces debería ser posible para lograr lo que quieres
Además, Stefan de Bruijn ha señalado que hay un error en Excel en el sentido de que supone incorrectamente que 1900 es un año bisiesto, por lo que debe tenerlo en cuenta al hacer sus cálculos ( Wikipedia ).
Excel espera que las fechas y horas se almacenen como un número de punto flotante cuyo valor depende de la configuración de Date1904 del libro, más un formato numérico como "mm / dd / aaaa" o "hh: mm: ss" o "mm / dd". / aaaa hh: mm: ss "para que el número se muestre al usuario como una fecha / hora.
Usando SpreadsheetGear for .NET puedes hacer esto: worksheet.Cells ["A1"]. Value = DateTime.Now;
Esto convertirá el DateTime a un doble que es el tipo subyacente que Excel usa para una fecha / hora, y luego formateará la celda con un formato predeterminado de fecha y / o número de tiempo automáticamente dependiendo del valor.
SpreadsheetGear también tiene los métodos IWorkbook.DateTimeToNumber (DateTime) y NumberToDateTime (double) que convierten objetos .NET DateTime a un doble que Excel puede usar.
Esperaría que XlsIO tuviera algo similar.
Descargo de responsabilidad: soy dueño de SpreadsheetGear LLC
Excel puede mostrar un tipo de fecha de manera similar a DateTime. Haga clic derecho en la celda afectada, seleccione Formato de celdas , luego en Categoría seleccione Fecha y en Tipo seleccione el tipo que se parece a esto:
3/14/01 1:30 PM
Eso debería hacer lo que solicitaste. Probé ordenando algunos datos de muestra con este formato y parecía funcionar bien.
Puede establecer valores de fecha y hora en una celda en XlsIO usando una de estas opciones
sheet.Range["A1"].Value2 = DateTime.Now;
sheet.Range["A1"].NumberFormat = "dd/mm/yyyy";
sheet.Range["A2"].DateTime = DateTime.Now;
sheet.Range["A2"].NumberFormat = "[$-409]d-mmm-yy;@";
Puede encontrar más información here .
Puedes hacer lo siguiente:
=Datevalue(text)+timevalue(text)
.
Vaya a diferentes tipos de formatos de fecha y elija:
dd-mm-yyyy mm:ss am/pm
.
Si, como yo, no puede encontrar una fecha y hora debajo de la fecha u hora en el cuadro de diálogo de formato, debería poder encontrarla en ''Personalizado''.
Acabo de seleccionar ''dd / mm / aaaa hh: mm'' de ''Personalizado'' y estoy contento con los resultados.
dd-mm-aaaa hh: mm: ss.000 Patrón de fecha / hora ordenable universal