Умножить диапазон ячеек Excel на вводимое число (C#)

Необходимо умножить диапазон ячеек C3:C18 на переменную (типа double), вводимую пользователем (через textbox или как-то иначе). В datagridview отображается изначальный диапазон ячеек, но после ввода переменной, DGW тоже должен измениться.

using System;
using System.Data;
using System.Windows.Forms;
using Microsoft.Office.Interop;
using Excel = Microsoft.Office.Interop.Excel;

namespace ExcelMatrix
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        //поиск файла Excel
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Multiselect = false;
        ofd.DefaultExt = "*.xls;*.xlsx";
        ofd.Filter = "Microsoft Excel (*.xls*)|*.xls*";
        ofd.Title = "Выберите документ Excel";
        if (ofd.ShowDialog() != DialogResult.OK)
        {
            MessageBox.Show("Вы не выбрали файл для открытия", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information);
            return;
        }

        string xlFileName = ofd.FileName; //имя нашего Excel файла

        //работа с Excel
        Excel.Range Rng;
        Excel.Workbook xlWB;
        Excel.Worksheet xlSht;

        Excel.Application xlApp = new Excel.Application(); //создаём приложение Excel
        xlWB = xlApp.Workbooks.Open(xlFileName); //открываем наш файл            
        xlSht = xlWB.ActiveSheet; //активный лист

        Rng = xlSht.get_Range("С3:C18"); 

        var dataArr = (object[,])Rng.Value; //чтение данных из ячеек в массив            

        //заполняем DataTable для последующего заполнения dataGridView
        DataTable dt = new DataTable();
        DataRow dtRow;
        //добавляем столбцы в DataTable
        for (int i = 1; i <= dataArr.GetUpperBound(1); i++)
            dt.Columns.Add((string)dataArr[1, i]);

        //цикл по строкам массива
        for (int i = 2; i <= dataArr.GetUpperBound(0); i++)
        {
            dtRow = dt.NewRow();
            //цикл по столбцам массива
            for (int n = 1; n <= dataArr.GetUpperBound(1); n++)
            {
                dtRow[n - 1] = dataArr[i, n];
            }
            dt.Rows.Add(dtRow);
        }

        this.dataGridView1.DataSource = dt; //заполняем dataGridView

    }
    private void releaseObject(object obj)
    {
        try
        {
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
            obj = null;
        }
        catch (Exception ex)
        {
            obj = null;
            MessageBox.Show("Unable to release the Object " + ex.ToString());
        }
        finally
        {
            GC.Collect();
        }
    }

}

}


Ответы (0 шт):