Умножить диапазон ячеек 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();
}
}
}
}