Добрый день, Я пишу программу, но мне нужно получить путь к excel файлу, использовать его данные и сохранить в поле значение ячейки. На c sharp. VS
using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace ExcelTest1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Add();
}
Excel.Application application;
Excel.Workbook workbook;
Excel.Worksheet worksheet;
private void Add()
{
application = new Excel.Application();
application.Visible = true;
workbook = application.Workbooks.Open("C:\\Users\\artem\\OneDrive\\Рабочий
стол\\CSharmLesson\\Таблица для расчетов\\Таблица для расчетов_v1_17.01.2023.xlsx");
//worksheet = (Excel.Worksheet)workbook.Worksheets[0];
}
private void button1_Click(object sender, EventArgs e)
{
string save = worksheet.Cells["E8"];
textBox1.Text = save;
}
}
}
Ответы (1 шт):
Автор решения: versetty777
→ Ссылка
Используй библиотеку EPPlus. Её нужно установить через NuGet и добавить ссылку на нее в проект. Вот пример кода для получения данных из ячейки: using OfficeOpenXml;
//...
var fileInfo = new FileInfo("C:\\path\\to\\file.xlsx");
using (var package = new ExcelPackage(fileInfo))
{
var worksheet = package.Workbook.Worksheets[0];
var cellValue = worksheet.Cells[8, 5].Value; // "E8"
textBox1.Text = cellValue.ToString();
}
Пример кода для сохранения данных в ячейку:
using OfficeOpenXml;
//...
var fileInfo = new FileInfo("C:\\path\\to\\file.xlsx");
using (var package = new ExcelPackage(fileInfo))
{
var worksheet = package.Workbook.Worksheets[0];
worksheet.Cells[8, 5].Value = textBox1.Text;
package.Save();
}
Либо используй встроенный класс Microsoft.Office.Interop.Excel, который входит в .NET Framework:
using Microsoft.Office.Interop.Excel;
//...
var excelApp = new Application();
Workbook workbook = excelApp.Workbooks.Open("C:\\path\\to\\file.xlsx");
Worksheet worksheet = workbook.Worksheets[1];
Range range = worksheet.Cells[8, 5];
textBox1.Text = range.Value.ToString();
workbook.Close();
далее
using Microsoft.Office.Interop.Excel;
//...
var excelApp = new Application();
Workbook workbook = excelApp.Workbooks.Open("C:\\path\\to\\file.xlsx");
Worksheet worksheet = workbook.Worksheets[1];
Range range = worksheet.Cells[8, 5];
range.Value = textBox1.Text;
workbook.Save();
workbook.Close();