Как представить дату и время в Excel


каков наилучший способ представления DateTime в Excel? Мы используем Syncfusions Essential XlsIO для вывода значений в документ Excel, который отлично работает. Но я не могу понять, как отобразить DateTime в столбце. Не при выполнении этого непосредственно в Excel либо. Это невозможно? Должен ли я использовать отдельный столбец даты и времени? Я действительно хочу, чтобы я этого не делал, потому что это своего рода ломает сортировку и т. д... если у Excel нет чего-то умного, чтобы исправить это...

8 60

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:

  1. щелкните правой кнопкой мыши - > Формат ячеек
  2. Выберите Категорию Custom
  3. введите строку пользовательского формата в поле" Тип"

Это работает на моем 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;@";

вы можете найти более подробную информацию здесь.