Подтвердить что ты не робот

Как представить DateTime в Excel

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

4b9b3361

Ответ 1

Базовый тип данных для datetime в Excel - это 64-битное число с плавающей запятой, где длина дня равна 1 и 1 января 1900 00:00, равна 1. Таким образом, 11 июня 2009 года 17:30 около 39975.72917.

Если ячейка содержит числовое значение, такое как это, оно может быть преобразовано в дату-время просто путем применения формата datetime к ячейке.

Итак, если вы можете преобразовать свои даты в числа с помощью приведенной выше формулы, выведите их в соответствующие ячейки и затем установите форматы ячеек в соответствующий формат даты и времени, например. yyyy-mm-dd hh: mm: ss, тогда должно быть возможно получить то, что вы хотите.

Также Stefan de Bruijn указал, что в Excel есть ошибка в том, что он ошибочно предполагает, что 1900 - это високосный год, поэтому вы необходимо учитывать это при расчетах (Wikipedia).

Ответ 2

Если, как и я, вы не можете найти дату и время в диалоговом окне формата, вы должны найти его в "Пользовательский".

Я только что выбрал 'dd/mm/yyyy hh: mm' из 'Custom' и доволен результатами.

Ответ 3

Вы можете сделать следующее:

=Datevalue(text)+timevalue(text).

Перейдите в разные типы форматов даты и выберите:

dd-mm-yyyy mm:ss am/pm.

Ответ 4

Некоторые версии Excel не имеют форматов даты и времени, доступных в стандартных списках выбора, но вы можете просто ввести строку пользовательского формата, такую ​​как yyyy-mm-dd hh: mm: ss by:

  • Щелкните правой кнопкой мыши → Форматировать ячейки
  • Вкладка "Номер"
  • Выберите категорию Пользовательский
  • Введите строку пользовательского формата в поле "Тип"

Это работает на моем Excel 2010

Ответ 5

Excel может отображать тип даты аналогичным образом DateTime. Щелкните правой кнопкой мыши на затронутой ячейке, выберите "Форматировать ячейки", затем в разделе "Дата выбора категории" и "Тип" выберите тип, который выглядит примерно так:

3/14/01 1:30 PM

Это должно делать то, что вы просили. Я протестировал сортировку по некоторым образцам данных в этом формате и, похоже, работал нормально.

Ответ 6

dd-mm-yyyy hh: mm: ss.000 Универсальный сортируемый шаблон даты/времени

Ответ 7

Excel ожидает, что даты и время будут сохранены как число с плавающей запятой, значение которого зависит от установки даты1904 рабочей книги, а также числовой формат, такой как "мм/дд/гггг" или "чч: мм: сс" или "хх: мм: mm/dd/yyyy hh: mm: ss", чтобы номер отображался пользователю как дата/время.

Используя SpreadsheetGear для .NET, вы можете сделать это:   Рабочий лист. Цвета [ "A1" ]. Значение = DateTime.Now;

Это преобразует DateTime в double, который является базовым типом, который использует Excel для даты/времени, а затем автоматически форматирует ячейку с датой даты и/или временным номером в зависимости от значения.

SpreadsheetGear также имеет методы IWorkbook.DateTimeToNumber(DateTime) и NumberToDateTime (double), которые конвертируют из объектов .NET DateTime в double, который может использовать Excel.

Я бы ожидал, что XlsIO будет иметь что-то подобное.

Отказ от ответственности: у меня есть SpreadsheetGear LLC

Ответ 8

Вы можете установить значения времени в ячейке в 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;@";

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