использование встроенных функций Excel в c# - PullRequest
0 голосов
/ 13 февраля 2020

Я пишу код в c# (в Visual Studio), и я пытаюсь работать внутри листа Excel. У меня есть некоторые функции для работы, но некоторые из них не работают. Включающий код

var xl = (Microsoft.Office.Interop.Excel.Application)Marshal.GetActiveObject("Excel.Application");
WorksheetFunction wsf = xl.WorksheetFunction;

oXL = new Microsoft.Office.Interop.Excel.Application();
oXL.Visible = true;
oWB = (Microsoft.Office.Interop.Excel._Workbook)(oXL.Workbooks.Open("C:\\Users\\MyUser\\Desktop\\Actual\\MyExcel.xlsx"));

shVolt = (Microsoft.Office.Interop.Excel._Worksheet)oWB.Sheets[1];
shCurProbe = (Microsoft.Office.Interop.Excel._Worksheet)oWB.Sheets[2];
shFluxProbe = (Microsoft.Office.Interop.Excel._Worksheet)oWB.Sheets[3];

Теперь, если я пытаюсь выполнить какую-либо функцию, кажется, что все они работают .. все они, как

double match = wsf.Match(123, shVolt.Rows[1]);

-> возвращают в основном позицию "123" в первая строка этого листа (скажем, «123» находится в 5-м столбце, тогда var match = 5), даже vlookup работает так же, как и sum ..

НО!

Я не могу заставить CountIF и CountA работать. - CountIF говорит что-то вроде «не могу преобразовать объект в удвоение» - CountA просто считает все ячейки в первой строке и возвращает 16k

Чего мне не хватает для работы всех нормальных функций Excel? Мне кажется довольно случайным, какой из них работает таким образом, а какой нет .. Я просто бросаю листы row1 для этих функций, а некоторые работают, а некоторые нет ..

Заранее большое спасибо!

...