На основе примера https://github.com/dotnet/samples/tree/master/core/extensions/ExcelDemo я могу заставить работать взаимодействие с Excel. NET Core 3.1 (да, я понимаю, что Excel не совсем кроссплатформенный, но терпите меня). Следующий код работает нормально при нацеливании. NET Framework 4.7.2 и, кроме того, *. 1010 * Ядро последней строки разрывается с IndexOutOfRangeException "Индекс был за пределами массива."
Excel.Application excel;
Excel.Workbook workbook;
Excel.Worksheet sheet;
Excel.Range range;
// Start Excel and get Application object.
excel = new Excel.Application();
excel.Visible = true;
// Get a new workbook.
workbook = excel.Workbooks.Add(Missing.Value);
sheet = (Excel.Worksheet)workbook.ActiveSheet;
range = sheet.Range[sheet.Cells[1, 1], sheet.Cells[1, 4]]; //this works fine with .NET Framework but not Core
Унаследованный код, который я пытаюсь перенести, настраивает диапазоны переменных, как это, иначе я бы просто использовал абсолютную индексацию в стиле электронных таблиц, например «A1: D1», которая, кажется, прекрасно работает. NET Core. Я попытался установить excel.ReferenceStyle = Excel.XlReferenceStyle.xlR1C1, а также перестановки sheet.get_Range (,) вместо sheet.Range [,], но я все еще получаю ту же проблему за пределами границ, несмотря на то, что это допустимый диапазон. Есть идеи, как заставить работать вызовы Range. NET Core?