Использование EPPlus для записи содержимого сетки данных в файл Excel. Эта функция:
public static void FormatExcelCell(OfficeOpenXml.ExcelRange cellExcel,
object cellValue,
System.Type cellValueType,
bool UseAlternateDateFormat = false)
{
cellExcel.Value = cellValue;
if (cellValue.ToString() != Constants.ValueForMissingTag)
{
if (cellValueType == typeof(System.DateTime))
cellExcel.Style.Numberformat.Format =
UseAlternateDateFormat ?
Constants.FormatDateTimeAlternateExport :
Constants.FormatDateTime;
}
else
{
cellExcel.Style.Fill.PatternType =
OfficeOpenXml.Style.ExcelFillStyle.Solid;
cellExcel.Style.Fill.BackgroundColor.SetColor
(Constants.ColorForMissingTag);
}
}
Если строка формата установлена на «гггг-ММ-дд ЧЧ: мм: сс.фф», то даты в файле Excel выглядят следующим образом: 2018-06-18 15: 45: 25.ff
Если строка формата установлена на «гггг-ММ-дд ЧЧ: мм: сс.00», то даты в файле Excel выглядят следующим образом: 2018-06-18 15: 45: 25,00
Удаляет ли EPPlus долю секунды (я знаю, что она есть, потому что я вижу ее в сетке данных), или она каким-то образом искажает строку формата? Это ошибка? Есть ли обходной путь?
Спасибо.
Обновление: обновлен EPPlus с 4.1.0.1 до 4.5.2.1 и добавлен OpenXML, который ранее не был необходим; по-прежнему создает неправильные форматы даты и времени, как указано выше.