OWC11 форматирование даты игнорируется - PullRequest
3 голосов
/ 08 марта 2010

Я создаю документ Excel, используя owc11. Я предоставляю даты в формате дд / мм / гггг. Я делаю что-то вроде этого в коде:

for (..looping through results..)
{
    Range c = EmailStats.putCellValue(sheet, row, 1, val);
    c.set_NumberFormat("dd/mm/yyyy");
}

private static Range putCellValue(Worksheet sheet, int row, int col, String val) 
{
    Range cell = (Range) sheet.Cells[row, col];
    cell.set_Value(XlRangeValueType.xlRangeValueDefault, val);
    return cell;
}

Теперь, когда для аргумента val я установил формат даты как "дд / мм / гггг" или не установил его вообще, поведение, которое я получаю, будет мм / дд / гггг с 1-го числа месяца до 12-го и затем он переключается обратно на дд / мм / гггг. Таким образом, owc11 считает, что он знает лучше и меняет дни и месяцы (как в формате США), а когда он заканчивается после 12 числа, он придерживается формата Великобритании.

Val объявлен как String, потому что он не всегда может быть датой. Это может быть дата, день, имя пользователя, имя группы и т. Д. В зависимости от того, как мы группируем / сортируем наши данные. Также это может быть выбор дней.

После экспериментов я понял, что единственный способ решить эту проблему - это использовать универсальный формат даты гггг / мм / дд. Однако это может создать другие проблемы интеграции. Поэтому я надеялся, что, возможно, найдется способ применить формат дд / мм / гггг, поэтому, пожалуйста, любые предложения приветствуются.

1 Ответ

1 голос
/ 08 марта 2010

Попробуйте установить val как не строку. Попробуйте назначить val как DateTime.

cell.set_Value(XlRangeValueType.xlRangeValueDefault, val);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...