Я использую Excel в качестве инструмента отчетности для своего настольного приложения. Приложение написано на C# (VS 2019).
Суть моего кода состоит в том, чтобы получить объект диапазона из рабочего листа, заполнить массив целых чисел с нулевым значением и записать его обратно в тот же рабочий лист.
До сих пор я получил диапазон ячеек, где startRow - первая строка, выделенная желтым цветом:
Range startRow = (Range) input.Range["E" + row.ToString(), "K" + row.ToString()];
Инициализируйте локальный массив следующим образом:
double?[,] startArray = new double?[1, 7];
Установите соответствующие значения:
startArray[1,2] = 9.75;
И, наконец, запишите данные обратно:
startRow.Value2 = startArray;
Когда я записать массив обратно, я получаю ошибку
The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
В этом случае я предполагаю, что это потому, что у меня есть некоторые нулевые значения в массиве, как будто я не использую нулевой массив и в результате его значения по умолчанию равны нулю, это работает нормально, но убирает нули в электронную таблицу.
Я попытался использовать:
string[,] startArray = new string[1, 7];
, который работает, но любые поля который имеет значение, не рассматривается как цифра c и приводит к тому, что формулы Excel не работают.
Так что к моему вопросу Могу ли я получить массив для обратной записи в Excel с нулевыми значениями или мне нужно вернуться к использованию объекта ячейки и обновить только те ячейки, которые содержат значение?