OpenXML парсинг даты

339
19 октября 2017, 08:02

Есть ячейка в документе Excell. В ней дата. Значение ячейки 43017.559872685182

Если открыть документ в программе Excell и посмотреть формат этой ячейки, там будет Дата. НО!

cell.DataType при этом равен null. Мои поиски привели меня к информации, что cell.DataType не равен null только если это SharedString или Boolean. Дальше нужно смотреть на cell.StyleIndex.Value

Из него вычисляется формат

CellFormat cellFormat = (CellFormat)wbPart.WorkbookStylesPart.Stylesheet.CellFormats.ElementAt((int)cellStyle);

Так же я нашел описание форматов. (ссылку не помню, но вот на память несколько значений)

14 - короткая дата 165 - длинная дата 164 - денежный (Currency)

А у меня получается формат ячейки 164. Но в нем же дата! Как так?

Каким образом я могу понять, что имею дело именно с датой?

UPD:

Я так же нашел строковое значение формата ячейки

string format = wbPart.WorkbookStylesPart.Stylesheet.NumberingFormats.Elements<NumberingFormat>()
            .Where(i => i.NumberFormatId.ToString() == cellFormat.NumberFormatId.ToString())
            .FirstOrDefault()?.FormatCode;

Для ячейки с датой это "dd/mm/yy\ h:mm;@". Но что с этим делать я не знаю. Не полагаться же на Regex в данном вопросе.

READ ALSO
Можно ли использовать DLL (написанную на C#) на компьютере без .net framework

Можно ли использовать DLL (написанную на C#) на компьютере без .net framework

Я попытался использовать библиотеку Unmanaged Exports (NET DllExport) в надежде что с ее помощью получится использовать свою DLL без

377
Задание значения в textbox из других классов, MVVM

Задание значения в textbox из других классов, MVVM

Есть классическое MVVM приложение VIEW содержит textbox, где Text="{Binding Message}" во ViewModel

349
Является ли строка временем, проверка с помощью регулярного выражения

Является ли строка временем, проверка с помощью регулярного выражения

Имеется паттерн /d/d:/d/d:/d/d для времениМетоды Regex

327
Переадрессация и фильтры в ASP.NET MVC

Переадрессация и фильтры в ASP.NET MVC

Возникла проблема с выполнением блокировки пользователей на сайтеА именно, нет понимания как сделать автоматическое открытие страницы...

310