Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Delphi Excel xlExclusive  [new]
SergeyKNP
Member

Откуда:
Сообщений: 88
Привет всем,
не могу сохранить файл Excel в режиме xlExclusive, может кто знает в чём причина:

+

procedure TDM2.SaveFileExclusive(FFileName: string);
var
  Workbook: Variant;
  ExcelApp: TExcelApplication;
begin

  ExcelApp := TExcelApplication.Create(nil);
  try
    ExcelApp.ConnectKind := ckNewInstance;
    ExcelApp.Connect;
    ExcelApp.Interactive[lcid] := False;
    // работать здесь
    Workbook := ExcelApp.WorkBooks.Open(FFileName, // Filename: WideString;
      2, // UpdateLinks: OleVariant; 2 - never update
      False, // ReadOnly: OleVariant;
      EmptyParam, // Format: OleVariant;
      EmptyParam, // Password: OleVariant;
      EmptyParam, // WriteResPassword: OleVariant;
      EmptyParam, // IgnoreReadOnlyRecommended: OleVariant;
      EmptyParam, // Origin: OleVariant;
      EmptyParam, // Delimiter: OleVariant;
      EmptyParam, // Editable: OleVariant;
      EmptyParam, // Notify: OleVariant;
      EmptyParam, // Converter: OleVariant;
      False, // AddToMru: OleVariant;
      EmptyParam, // Local: OleVariant;
      EmptyParam, // CorruptLoad: OleVariant;
      lcid);

    // запрещаем работу пользователю с нашим экземпляром Excel'я
    ExcelApp.DisplayAlerts[lcid] := False;


//  вот здесь сохраняю файл с отключением общего доступа, почему-то общий доступ сохраняется
    Workbook.SaveAs(FFileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, xlExclusive, EmptyParam, EmptyParam, EmptyParam, EmptyParam, False);


    // Этот способ только для Excel версии XP и выше
    SetForegroundWindow(ExcelApp.Hwnd);
  finally
    // не забыть разрешить пользователю доступ к Excel'ю!
    ExcelApp.DisplayAlerts[lcid] := True;
    ExcelApp.UserControl := True;
    ExcelApp.Interactive[lcid] := True;

    ExcelApp.Quit;
    ExcelApp.Disconnect;
    ExcelApp.Application.Quit;
    FreeAndNil(ExcelApp);
  end;
 
end;

5 июн 21, 16:27    [22331776]     Ответить | Цитировать Сообщить модератору
 Re: Delphi Excel xlExclusive  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12885
А если так
Workbook.SaveAs(
  FileName := FFileName,
  AccessMode := xlExclusive,
  Local := False
);
?
5 июн 21, 17:49    [22331788]     Ответить | Цитировать Сообщить модератору
 Re: Delphi Excel xlExclusive  [new]
SergeyKNP
Member

Откуда:
Сообщений: 88
_Vasilisk_,

не, не снимает общий доступ (Office 2019)
5 июн 21, 20:01    [22331805]     Ответить | Цитировать Сообщить модератору
 Re: Delphi Excel xlExclusive  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12885
SergeyKNP,

А через запись макроса пробовали?
7 июн 21, 09:31    [22332093]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить