2016-12-05 6 views
0

В настоящее время я использую aspose.cells для .Net и вам необходимо установить произвольный формат даты на основе текущего языка, используемого в нашем приложении. Проблема заключается в том, что мы устанавливаем формат по коду ниже, но если формат даты в системе (ОС) отличается, наше пользовательское форматирование идет на бросок, а excel отображает дату в формате системы (ОС). Есть ли обходной путь для этого? Ниже приведен код:Форматирование пользовательских дат Aspose.cells независимо от формата даты операционной системы

var dateStyle = dataWorksheet.Cells.GetCellStyle(startRowNumber, column); 

      dateStyle.Custom = CultureInfo.CreateSpecificCulture("en-US").DateTimeFormat.ShortDatePattern; 
      var dateRange = dataWorksheet.Cells.CreateRange(startRowNumber, column, dataTable.Rows.Count + 1, 1); 

      dateRange.SetStyle(dateStyle); 

Также попробовал решение here, но безрезультатно.

ответ

0

@Gautam, Пожалуйста, обратите внимание, заявление CultureInfo.CreateSpecificCulture ("EN-US"). DateTimeFormat.ShortDatePattern возвращает шаблон, который является в Excel встроенный формат (M/d/гггг) поэтому настройки его к ячейка (или диапазон ячеек) в качестве настраиваемого формата автоматически преобразует формат во встроенный, который будет меняться в соответствии с локалью машины, на которой будет загружаться электронная таблица. Я предлагаю вам использовать пользовательский шаблон как mm/dd/yyyy, который даст аналогичный результат, но формат не изменится в соответствии с языковым стандартом. Проверьте следующий фрагмент кода, а также прилагаемый снимок, показывающий диалог Формат ячейки.

C#

var book = new Workbook(); 
var sheet = book.Worksheets[0]; 
var dateStyle = sheet.Cells.GetCellStyle(0, 0); 

dateStyle.Custom = "mm/dd/yyyy";//CultureInfo.CreateSpecificCulture("en-US").DateTimeFormat.ShortDatePattern; //represents M/d/yyyy 
var dateRange = sheet.Cells.CreateRange(1, 0, 10, 1); 
dateRange.SetStyle(dateStyle); 
dateRange.PutValue("26-Sep-2014", true, false); 
book.Save(dir + "output.xlsx"); 

enter image description here

Примечание: Я работаю евангелиста Developer в Aspose