Имеется простой фрагмент кода для открытия книги Excel и подсчета используемых столбцов и строк:
procedure GetWorksheetSize(const AFilename: String; var AUsedColumns, AUsedRows: Integer);
var
ExcelSession, ExcelWorkbook, ExcelSheet: Variant;
begin
ExcelSession := CreateOLEObject('Excel.Application');
ExcelSession.Visible := false;
ExcelSession.UserControl := false;
ExcelSession.Workbooks.Open(AFilename);
ExcelWorkbook := ExcelSession.Workbooks[1];
ExcelSheet := ExcelWorkbook.ActiveSheet;
AUsedColumns := ExcelSheet.UsedRange.Columns.Count;
AUsedRows := ExcelSheet.UsedRange.Rows.Count;
ExcelWorkbook.Close;
ExcelSession.Quit;
ExcelSession := UnAssigned;
ExcelWorkbook := UnAssigned;
ExcelSheet := UnAssigned;
end;
Не имеет значения, пишу ли я это в Delphi 2005, XE2 или 10,3 , результат тот же; для Excel 2013, 2016 и 2019 процедура заполняет параметры так, что пользователь не видит книгу. Для Excel 365 рабочая книга ненадолго появляется (без окна / ленты приложения Excel ), а затем исчезает.
Кто-нибудь знает, как остановить отображение рабочей книги ? В Workbooks.Open
нет параметра, который бы указывал, чтобы он открывался без его показа.