#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
#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
#11 20.07.07 22:41
Re: [C#] Interop Excel
у меня мое приложение с Microsoft.Office.Interop.Word.dll стучится в инет, один раз при его открытии, второй при открытии дока в нем. вернее не само приложение а какойто компонент виндов.
Offline

