Как представить дату и время в Excel
каков наилучший способ представления DateTime
в Excel? Мы используем Syncfusions Essential XlsIO для вывода значений в документ Excel, который отлично работает. Но я не могу понять, как отобразить DateTime
в столбце. Не при выполнении этого непосредственно в Excel либо. Это невозможно? Должен ли я использовать отдельный столбец даты и времени? Я действительно хочу, чтобы я этого не делал, потому что это своего рода ломает сортировку и т. д... если у Excel нет чего-то умного, чтобы исправить это...
8 ответов:
базовым типом данных datetime в Excel является 64-разрядное число с плавающей запятой, где длина дня равна 1 и 1 января 1900 00: 00 равно 1. Таким образом, 11 июня 2009 года 17:30 составляет около 39975.72917.
если ячейка содержит числовое значение, такое как это, она может быть преобразована в datetime просто путем применения формата datetime к ячейке.
Итак, если вы можете преобразовать свои даты в числа, используя приведенную выше формулу, выведите их в соответствующие ячейки, а затем установите форматы ячеек в соответствующий формат datetime, например yyyy-mm-dd hh:mm:ss, тогда должно быть возможно получить то, что вы хотите.
и Стефан де Брейна указал, что в Excel есть ошибка в том, что он неправильно предполагает, что 1900 год является високосным годом, поэтому вам нужно учитывать это при расчетах (Википедия).
Если, как и я, вы не можете найти datetime под датой или временем в диалоговом окне формата, вы должны быть в состоянии найти его в "Custom".
Я только что выбрал "dd/mm / yyyy hh:mm" из "Custom" и доволен результатами.
Вы можете сделать следующее:
=Datevalue(text)+timevalue(text)
.перейти в различные типы форматов даты и выбрать:
dd-mm-yyyy mm:ss am/pm
.
некоторые версии Excel не имеют форматов даты и времени, доступных в стандартных списках выбора, но вы можете просто ввести строку пользовательского формата, такую как yyyy-mm-dd hh:mm:ss by:
- щелкните правой кнопкой мыши - > Формат ячеек
- Выберите Категорию Custom
- введите строку пользовательского формата в поле" Тип"
Это работает на моем Excel 2010
Excel может отображать тип даты аналогично DateTime. Щелкните правой кнопкой мыши на соответствующей ячейке, выберите Формат Ячеек, затем в категория выберите дата и под тип выберите тип, который выглядит примерно так:
3/14/01 1:30 PM
Это должно сделать то, что вы просили. Я протестировал сортировку по некоторым образцам данных с этим форматом, и это, казалось, работало нормально.
Excel ожидает, что даты и время будут храниться как число с плавающей запятой, значение которого зависит от параметра Date1904 книги, а также числовой формат, такой как "mm/dd/yyyy" или "HH:mm:ss" или "mm/dd/yyyy hh:mm:ss", чтобы число отображалось пользователю как дата / время.
используя SpreadsheetGear для .NET Вы можете сделать это: рабочий лист.Ячейки ["A1"].Значение = Датавремя.Сейчас;
это преобразует DateTime в double, который является базовым введите, который Excel использует для даты / времени, а затем отформатируйте ячейку с форматом даты и / или времени по умолчанию автоматически в зависимости от значения.
SpreadsheetGear также имеет IWorkbook.DateTimeToNumber(DateTime) и numbertodatetime (double) методы, которые преобразуют из объектов .NET DateTime в double, который может использовать Excel.
Я ожидал бы, что XlsIO будет иметь что-то подобное.
отказ от ответственности: я владею SpreadsheetGear LLC
вы можете установить значения даты и времени для ячейки в XlsIO, используя один из этих параметров
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;@";
вы можете найти более подробную информацию здесь.