.NET 4.x Сохранение в xlsx и ошибка отсутствия доступа к файлу - C#
Формулировка задачи:
Мне некоторые данные нужно сохранить в xlsx файл
У меня есть класс table, у него следующие поля
затем в конструкторе
Так теперь мне нужно сохранить эту xlsx
сделал метод
Теперь самое интересное
После нескольких записей (у меня отдельный метод) нужно сохранять, соответственно вызываю Save(), но вылетает ошибка (нет доступа к <имя файла>). Если запустить этот метод из конструктора, то все сохраняет, НО после того как все сохранилось процесс (файл открыт [и я не могу ни удалить не записать в него, приходится вручную убивать]) остается висеть. Что можете посоветовать?
private Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
private Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
private Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;//Книга.
ObjWorkBook = ObjExcel.Workbooks.Add(System.Reflection.Missing.Value);
//Таблица.
ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
string[] buf = { "номер", "X", "X'", "Y", "Y'", "E", "Q", "M", "X(0)", "X(0)'", "Y(0)", "Y(0)'" };
for(int i = 0; i<12; i++)
ObjWorkSheet.Cells[2, i+1] = buf[i]; public void Save()
{
ObjWorkBook.SaveAs(_path);
}Решение задачи: «.NET 4.x Сохранение в xlsx и ошибка отсутствия доступа к файлу»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
namespace Excel_Tabl
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
ObjWorkBook = ObjExcel.Workbooks.Add(System.Reflection.Missing.Value);
//Таблица.
ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
string[] buf = { "номер", "X", "X'", "Y", "Y'", "E", "Q", "M", "X(0)", "X(0)'", "Y(0)", "Y(0)'" };
for (int i = 0; i < 12; i++)
ObjWorkSheet.Cells[2, i + 1] = buf[i];
}
}
}