Официальный сайт студ.городка НГТУ
Программирование и БД » [C#] Interop Excel 

#1  28.06.07 22:17

[C#] Interop Excel

У меня вопросик. Как программно закрыть Эксель?
Я использую библиотеку интероп. VS2005


Excel.Application xlApp = new Excel.Application();
///блаблабала выполняю все нудные операции

xlApp.Quit();//Закрыть эксель
xlApp = null;


после этго эксель закрывается. Но он остается висеть в диспетчере задач и изза этого ДО ЗАВЕРШЕНИЯ программы я не могу нормально открыть этот документ, или только после того как я вручную выгружаю эксель из диспетчера. Это не приемлимо совсем, так как на заводе старые бабушки не знают что это)))))). Очень срочно нада, помогите пожалуйста.

Offline

#2  28.06.07 23:44

Re: [C#] Interop Excel

http://rsdn.ru/article/dotnet/ExcelNELateBinding.xml

// Уничтожение объекта Excel.
Marshal.ReleaseComObject(excel);
// Вызываем сборщик мусора для немедленной очистки памяти
GC.GetTotalMemory(true);

Offline

#3  30.06.07 23:34

Re: [C#] Interop Excel

хм... спасибо.
Но я пользуюсь немноо не этим интеропом. Отдельными библиотеками интероп.
там нет таких команд.

object m = System.Reflection.Missing.Value;
//ИНИЦИАЛИЗИРУМ ЭКСЕЛЬ
Excel.Application xlApp = new Excel.Application();
            xlApp.Workbooks.Open(nameFile, m, m, m, m, m, m, m, m, m, m, m, m, m, m);

//УСТАНОВКА ПАРАМЕТРОВ
            xlApp.Visible = true;
            xlApp.Interactive = true;
            xlApp.EnableEvents = true;

//ССЫЛКА НА ТЕКУЩИЙ ЛИСТ В ЭКСЕЛЕ
            Excel.Worksheet oSheet =(Excel.Worksheet)xlApp.ActiveSheet;



я пользуюсь библиотекой, реализующий такой код примерно. Ну инициализация там происхходит именно так.
Может ктоот пользовался???

Offline

#4  30.06.07 23:38

Re: [C#] Interop Excel

Но всеравно спасибо)) я не знал что есть встроенная библиотека в VS. Буду теперь ей пользоваться. А та прога уже сделана полностью. Вот только этот косяк остался. Надеюсь что еще можно успеть..... а переделывать под ту библиотеку очень многа, в следующей проге буду именно ей пользоваться)) спасибо)

Offline

#5  03.07.07 22:53

Re: [C#] Interop Excel

RusRusRus, напиши что в екселе сделать нужно. может там без new Excel.Application(); можно обойтись. а так обрати внимание что там необходимо закрыть лист, потом книгу, потом приложение. а у тебя в приведенном коде только приложение закрыто.

Offline

#6  05.07.07 23:48

Re: [C#] Interop Excel

аааа) спасибо)

Offline

#7  10.07.07 19:01

Re: [C#] Interop Excel

приходилось с этим иметь дело.
обычная попытка закрытия Application закрывала только документ. а Excel оставался запущеным.

в итоге убивал процесс.

Offline

#8  12.07.07 15:47

$up
Профиль

Re: [C#] Interop Excel

Я тоже прибивал процесс.
на С++ правда была прога, но проблемы аналогичные

Offline

#9  19.07.07 09:20

Re: [C#] Interop Excel

Код::

ApplicationClass app = new ApplicationClass();
Workbooks workbooks = app.Workbooks;
_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Sheets sheets = workbook.Worksheets;
_Worksheet worksheet = (_Worksheet)sheets.get_Item(1);
worksheet.Name = "Report";
workbook.Windows[XlWindowType.xlWorkbook].Zoom = 80;
//тута как-то генерирую отчет....
workbook.Saved = true;
app.UserControl = false;
app.Quit();

Данный код  работает, процесс исчезает...

Offline

#10  20.07.07 11:54

$up
Профиль

Re: [C#] Interop Excel

Продукты МС не предсказуемы. На английской версии экселя процесс исчезает, на немецкой версии остаётся висеть, хотя код один и тот же 8)

Работа с объектами офиса это всегда пляска с бубном.

Offline

#11  20.07.07 22:41

Re: [C#] Interop Excel

у меня мое приложение с Microsoft.Office.Interop.Word.dll стучится в инет, один раз при его открытии, второй при открытии дока в нем. вернее не само приложение а какойто компонент виндов.

Offline

#12  25.07.07 09:42

Maq
Профиль

Re: [C#] Interop Excel

кстати советую и под вистой потестить)))
в этотом куске г. много чего работает некоректно))

Offline

Программирование и БД » [C#] Interop Excel 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.032 сек.
Выполнено 14 запросов.