Set range value устанавливает только первое значение

#c# #excel #office-addins #excel-addins

#c# #excel #office-дополнения #excel-дополнения

Вопрос:

Чтобы задать диапазон значений Excel, я использую этот код:

 int[] values = new int[] {1, 2, 3};
String rangeStart = "A1";
String rangeEnd = "A3";

Microsoft.Office.Interop.Excel.Workbook objBook;
Microsoft.Office.Interop.Excel.Sheets objSheets;
Microsoft.Office.Interop.Excel._Worksheet workSheet;

objBook = (Microsoft.Office.Interop.Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook;
objSheets = objBook.Worksheets;
workSheet = (Microsoft.Office.Interop.Excel.Worksheet)objBook.ActiveSheet;

workSheet.Range[rangeStart, rangeEnd].Value = values;
  

Но ячейки содержат только первое значение массива.
Есть идеи, как записать каждое значение массива в поля?

Комментарии:

1. ЕСЛИ бы это был VBA, массив должен был бы быть 2D. Возможно, то же самое в C# ?

Ответ №1:

Как говорит @Ron Rosenfield, диапазоны Excel представляют собой двумерные массивы. Итак,

 int[,] values = new int[,] { { 1 }, { 2 }, { 3 } }; 
  

будет работать для вас. Всегда помните — 2d массивы