Как программно отформатировать ячейки, содержащие время, чтобы форматирование было правильно распознано в MS Excel - PullRequest
0 голосов
/ 18 июня 2019

Я прошу прощения за скучный вопрос, но я ищу правильный способ правильно отформатировать ячейки в формате времени, чтобы Excel распознал его. Есть много ответов на вопросы, как здесь, так и на других сайтах, которые получают основную информацию, но ни один из них не полностью отвечает на мой вопрос.

Выпуск:

Я использую c # для записи данных о времени в электронную таблицу. То, что я могу получить - это форматирование по времени в ячейке, но я хочу, чтобы Excel отображало правильное форматирование, и я хочу, чтобы это форматирование обрабатывалось программно.

Обратите внимание фактическое форматирование на ленте Excel, которое отражено на рисунке ниже - я хочу, чтобы "пользовательский" отображал правильный формат "Время":

* +1012 *enter image description here

Ниже приведен фрагмент из цикла for, который я пытаюсь построить для форматирования даты. Я проверил это, и оно работает:

targetsheet.Cells[RowsUsed + 1, i].NumberFormatLocal = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;
DateTime dt = Convert.ToDateTime(data_towrite[i - 1]);
Double db = dt.ToOADate();
targetsheet.Cells[RowsUsed + 1, i] = db;

Что дает мне это: enter image description here

Я пытаюсь скопировать этот код для работы с ячейками типа времени, но мне не везет:

targetsheet.Cells[RowsUsed + 1, i].NumberFormatLocal = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern;
DateTime tt = Convert.ToDateTime(data_towrite[i - 1]);
Double db = tt.ToOADate();
targetsheet.Cells[RowsUsed + 1, i] = db;

Я совершенно уверен, что проблема связана с первой строкой, которая форматирует ячейку, но я не знаю, как заставить это работать.

Я пробовал другие предложения, как пример ниже:

targetsheet.Cells[RowsUsed + 1, i].NumberFormatLocal = "hh:mm:ss"

но это дает мне "пользовательский формат", который мне не нужен.

Я знаю, что я мог бы просто оставить форматирование как пользовательское или просто открыть электронную таблицу и щелкнуть по кнопке, чтобы изменить ее, но основная причина вопроса заключается в том, чтобы узнать, как правильно делать такие вещи (если даже есть способ).

Если бы кто-то мог сказать мне, что я делаю неправильно, или указать мне направление чтения, которое решает эту простую, но раздражающую проблему, я был бы очень признателен.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...