Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi Excel xlExclusive / 4 сообщений из 4, страница 1 из 1
05.06.2021, 16:27
    #40075853
SergeyKNP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi Excel xlExclusive
Привет всем,
не могу сохранить файл 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
05.06.2021, 17:49
    #40075862
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi Excel xlExclusive
А если так
Код: pascal
1.
2.
3.
4.
5.
Workbook.SaveAs(
  FileName := FFileName,
  AccessMode := xlExclusive,
  Local := False
);

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

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

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


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