Страница 1 из 1

xlKillExcel не закрывает Excel

Добавлено: 19 май 2010, 16:34
BlazeBio
.............................
StartNewVisual(vtRotateVisual, vfTimer+vfBreak+vfConfirm,''#3'...открывается .xls-файл...',1);
xlCreateExcelWithTemplate(sXlFileName,false);
StopVisual('',0);

If xlIsExcelValid = true
{
if xlSetActiveSheetByName(sXlSheet) = true
{
If xlReadMatrixFromExcel(0,0, 201,12) = true
{


StartNewVisual(vtRotateVisual, vfTimer,''#3'...формируется таблица...',1);

for (iRowNum:=1; iRowNum <= 201; iRowNum:=iRowNum+1) // Закачиваем данные во временную таблицу

{ //For
xlReadFromMatrix(iRowNum,0, temp_str);
TblSfString(T_excel,T_npp2,temp_str);

xlReadFromMatrix(iRowNum,1, temp_str);
TblSfString(T_excel,T_npp,temp_str);


xlReadFromMatrix(iRowNum,2, temp_str);
TblSfString(T_excel,T_CarType,temp_str);

xlReadFromMatrix(iRowNum,4, temp_tar);
TblSfdouble(T_excel,T_tarH,temp_tar);

xlReadFromMatrix(iRowNum,5, temp_tar);
TblSfdouble(T_excel,T_tarKM,temp_tar);

xlReadFromMatrix(iRowNum,6, temp_tar);
TblSfdouble(T_excel,T_tar100H,temp_tar);

xlReadFromMatrix(iRowNum,7, temp_tar);
TblSfdouble(T_excel,T_tar100KM,temp_tar);

xlReadFromMatrix(iRowNum,8, temp_tar);
TblSfdouble(T_excel,T_tar50H,temp_tar);

xlReadFromMatrix(iRowNum,9, temp_tar);
TblSfdouble(T_excel,T_tar50KM,temp_tar)

xlReadFromMatrix(iRowNum,10, temp_str);
TblSfstring(T_excel,T_sid,temp_str);

TblInsertCurrent(T_excel);
} //For

StopVisual('',0);
}//if
else { message('Ошибка позиции'); }
} // if xlSetActiveSheetByName(sXlSheet) = true end
else
{
message('.xls-файл не открывается. Неверно указано наименование листа Excel.');
} // else if xlSetActiveSheetByName(sXlSheet) = true end
xlKillExcel;
} // top if end
else
{
message('ошибка открытия *.xls файла');
} // If xlIsExcelValid = true end
....................................

Здесь я выбираю через виповский интерфейс файл Auto.xls. Прога откравает его и оставляет открытым. А мне нужно, чтобы он мгновенно открывался и затем также быстро закрывался автоматически. хlEXcelKill не закрывает и не скрывает xlCreateExcelWithTemplate(sXlFileName,false). В чём проблема или так и должно быть ?

Добавлено: 19 май 2010, 18:30
BlazeBio
Всё, сам разобрался ! :grin:
Нужно вместо
xlCreateExcelWithTemplate(sXlFileName,false)
использовать комбинацию функций
xlOpenNewExcel(false);
xlOpenWorkbook(sXlFileName);

Добавлено: 19 май 2010, 21:00
edward_K
а в дисптчере задач ничего не остается?
есть еще функции для закрытия книги.

Добавлено: 20 май 2010, 11:13
BlazeBio
Какие процессы - типа EXCEL.EXE ? Раньше были, теперь EXCEL.EXE появляется в диспетчере задач и нормально закрывается, то есть не остаётся в памяти.