Использование функции из библиотеки Excel - C#
Формулировка задачи:
Всем доброго времени суток, у меня проблема с работой библиотеки Exel(некоторыми их функциями)
Всё подлкючил
все вроде как работает, сделал добавление случайного числа, вроде все ок.
работает формула добавление случайного числа
Но вот эту формулу (Частота) не воспринимает и возращает -2146826273
как мне исправить работу этой формулы?
int res = excel._Evaluate("{=FREQUENCY({22;22;22;22};{22})}");
кажется правильно записал....
Листинг программы
- using Excel = Microsoft.Office.Interop.Excel;
Листинг программы
- Excel.Application excel = new Excel.Application(); //создаем COM-объект Excel
- Object formula, result; //переменные для хранения формулы и результата
- formula = ""; //берем формулу
- result = excel._Evaluate(formula); //вычисляем формулу
- MessageBox.Show(result.ToString()); //выводим результат
- string h = "0.1;0.2;0.3;0.4;0.5";
- string rand = "";
- int rnumb = 200;
- for (int i = 0; i < rnumb; i++)
- {
- rand = rand + Convert.ToString(excel._Evaluate("=RAND()"));
- if (i != 0 || i != rnumb - 1)
- {
- rand = rand + ";";
- }
- }
Листинг программы
- int res = excel._Evaluate("{=FREQUENCY({22;22;22;22};{22})}");
- MessageBox.Show(Convert.ToString(excel._Evaluate("{=FREQUENCY({"+rand+"};{"+h+"})}")));
- excel.Quit();
подскажет кто в чем проблема?
Решение задачи: «Использование функции из библиотеки Excel»
textual
Листинг программы
- class RandomArray
- {
- //массив значений
- double[] array;
- //верхние границы интервалов
- double[] intervals = { 0.2, 0.4, 0.6, 0.8, 1.0 };
- public RandomArray(int size) //конструктор, принимает количество элементов в создаваемом массиве
- {
- Random rnd = new Random();
- array = new double[size];
- for (int i = 0; i < size; i++)
- {
- array[i] = rnd.NextDouble();
- }
- }
- public int[] Frequency() //метод возвращающий массив частот
- {
- int[] freqArray = new int[intervals.Length + 1];
- for (int i = 0; i < array.Length; i++)
- {
- freqArray[GetIndex(array[i])]++;
- }
- return freqArray;
- }
- int GetIndex(double d) //метод, определяющий номер интервала для элемента
- {
- for (int i = 0; i < intervals.Length; i++)
- {
- if (d < intervals[i]) return i;
- }
- return intervals.Length;
- }
- public double[] GetArray() //возвращение массива
- {
- return array;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д