Следующий код помещает значения даты в Excel, но по какой-то причине они автоматически не форматируются как дата. Если я ввожу эти даты вручную - они автоматически форматируются. Excel работает в Windows с настройкой европейской локали. Как сделать так, чтобы Excel автоматически форматировал даты? Я не могу явно применить форматирование, так как диапазон, который я помещаю в Excel, может содержать столбцы разных типов данных, и весь диапазон должен быть вставлен в один кадр из соображений производительности.
string[,] arr = new string [2, 2];
arr[0, 0] = "Date";
arr[0, 1] = "DateTime";
arr[1, 0] = "21/12/2018";
arr[1, 1] = "26/12/2019";
Range rng = Globals.ThisAddIn.Application.ActiveSheet.Range["A1:B2"];
rng.set_Value(XlRangeValueDataType.xlRangeValueDefault, arr);
UPDATE:
Я фактически сузил это до следующего:
string dt = DateTime.Now.ToString(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat);
worksheet.Range["A1"].Value = dt;
Это странно, строка форматируется в соответствии с настройками локали пользователя, но когда я вставляю ее в Excel во второй строке - Excel почему-то конвертирует ее в американский формат. Таким образом, при установке европейского формата даты в Windows, если строка «11/03/2019», то, что я вижу в Excel после запуска кода, «03/11/2019».