Я использую Microsoft Open XML SDK 2, и мне действительно нелегко вставлять дату в ячейку. Я могу вставить числа без проблемы путем установки Cell.DataType = CellValues.Number
, но когда я делаю то же с датой (Cell.DataType = CellValues.Date
) Катастрофические отказы Excel 2010 (2007 также).
Я пытался установить Cell.Text
оцените многим форматам даты, а также формату Excel date/numeric напрасно. Я также пытался использовать стили, удаляя атрибут типа, плюс много других пицц, которые я бросил в стену …
Кто-либо может указать на меня на пример, вставляющий дату в рабочий лист?
Вы должны преобразовать DateTime
в double
, используя функцию ToOADate
, то есть:
DateTime dtValue = DateTime.Now;
string strValue = dtValue.ToOADate().ToString(CultureInfo.InvariantCulture);
, затем установите его как CellValue
Cell cell;
cell.DataType = new EnumValue<CellValues>(CellValues.Date);
cell.CellValue = new CellValue(strValue);
Не забудьте отформатировать ячейку, используя форматирование DateTime
, иначе вы увидите значение double
, а не дату.