Microsoft.office.interop.excel
Автор Ѐоман Акбашев задал вопрос в разделе Другие языки и технологии
С# подскажите пожалуйста и получил лучший ответ
Ответ от Kelavric kelavric[гуру]
Ну, Вы же эту функцию где-то вызываете? Вот перед работой того кода откройте ексель (теми строчками, что перед Regex regex =...), а после работы закройте. В самой функции, похоже, хватит и одного лишь ObjWorkSheet, переданного туда в качестве параметра.
Ответ от Shaman[гуру]
Самый банальный вариант ...
Вызываешь метод кнопкой ?
да и деактивируй её после одного выполнения ...
Самый банальный вариант ...
Вызываешь метод кнопкой ?
да и деактивируй её после одного выполнения ...
Ответ от Ночник[гуру]
Упакую все вызовы к Excel в класс (можно в статический) при создании экземпляра класса открывай соединение, а данную функцию оформи как метод
Упакую все вызовы к Excel в класс (можно в статический) при создании экземпляра класса открывай соединение, а данную функцию оформи как метод
Ответ от ...[гуру]
Microsoft.Office.Interop.Excel.Applicatiоn оbjExcel = new Microsoft.Office.Interop.Excel.Application();
Корень Ваших проблем. Вы создаёте объект excel каждый раз и он естественно будет новым.
Вынесите ObjWorkBook вне фукнции (какой у Вас там класс/форма.... )
т. е. сейчас
class Form1 {
private void searchRegR(string strpat, int l) {
...
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ...;
}
А сделайте так:
class Form1 {
...
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
...
private void searchRegR(....) {
//Проверяем инициализирована ли рабочая книга, если нет
if (!ObjWorkBook is Microsoft.Office.Interop.Excel.Workbook) {
//Создаём "приложение"
Microsoft.Office.Interop.Excel.Applicatiоn оbjExcel = new Microsoft.Office.Interop.Excel.Application();
//!!! Запоминаем книгу
ObjWorkBook = ObjExcel.Workbooks.Add(System.Reflection.Missing.Value);
}
//Дальше работаем с книгой.
}
}
Вместо книги естественно можно хранить лист, или приложение, если это удобнее...
Microsoft.Office.Interop.Excel.Applicatiоn оbjExcel = new Microsoft.Office.Interop.Excel.Application();
Корень Ваших проблем. Вы создаёте объект excel каждый раз и он естественно будет новым.
Вынесите ObjWorkBook вне фукнции (какой у Вас там класс/форма.... )
т. е. сейчас
class Form1 {
private void searchRegR(string strpat, int l) {
...
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ...;
}
А сделайте так:
class Form1 {
...
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
...
private void searchRegR(....) {
//Проверяем инициализирована ли рабочая книга, если нет
if (!ObjWorkBook is Microsoft.Office.Interop.Excel.Workbook) {
//Создаём "приложение"
Microsoft.Office.Interop.Excel.Applicatiоn оbjExcel = new Microsoft.Office.Interop.Excel.Application();
//!!! Запоминаем книгу
ObjWorkBook = ObjExcel.Workbooks.Add(System.Reflection.Missing.Value);
}
//Дальше работаем с книгой.
}
}
Вместо книги естественно можно хранить лист, или приложение, если это удобнее...
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: С# подскажите пожалуйста
спросили в Soweto Open Visual Basic NET
как в visual studio прикрепить excel шаблон и при помощи него создавать заполненные книги excel на visual basic
"Проект -> Добавить ссылку -> COM -> Microsoft Excel XX Object Library ", где XX -
подробнее...
как в visual studio прикрепить excel шаблон и при помощи него создавать заполненные книги excel на visual basic
"Проект -> Добавить ссылку -> COM -> Microsoft Excel XX Object Library ", где XX -
подробнее...