powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Excel xlExclusive
4 сообщений из 4, страница 1 из 1
Delphi Excel xlExclusive
    #40075853
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем,
не могу сохранить файл Excel в режиме xlExclusive, может кто знает в чём причина:


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
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;


...
Рейтинг: 0 / 0
Delphi Excel xlExclusive
    #40075862
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так
Код: pascal
1.
2.
3.
4.
5.
Workbook.SaveAs(
  FileName := FFileName,
  AccessMode := xlExclusive,
  Local := False
);

?
...
Рейтинг: 0 / 0
Delphi Excel xlExclusive
    #40075870
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

не, не снимает общий доступ (Office 2019)
...
Рейтинг: 0 / 0
Delphi Excel xlExclusive
    #40076001
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP,

А через запись макроса пробовали?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Excel xlExclusive
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]