Links
Comment on page

Приложение Excel

Производит подключение к приложению Excel. Компонент служит контейнером для других элементов, работающих с Excel.
Особенности работы с файлами определяются выбранным драйвером:
  1. 1.
    DX - работает с файлом без Microsoft Office, вследствие чего имеет более высокую производительность. Хорошо подходит для небольших файлов, поддерживается на всех указанных ОС. Недостатки: не работает с макросами и, если файл большой, может занимать много памяти.
  2. 2.
    Interop - работает с файлом через запуск приложения. Поддерживает макросы, не занимает много оперативной памяти. Недостатки: работает медленнее, чем DX, не поддерживается на Linux.
Важно: чтобы сохранить изменения в Excel-файле, используйте в конце работы элемент Сохранить документ.

Свойства

Символ * в названии свойства указывает на обязательность заполнения. Описание общих свойств см. в разделе Свойства элемента.
Свойство
Тип
Описание
Excel:
Драйвер
LTools.Office.Model.InteropTypes
Тип драйвера подключения: DX или Interop
Путь к файлу
String
Путь к файлу документа Excel. Пример: @"C:\folder\file.xlsx".
Символ @ используется для экранирования обратного слеша </code>
Проверять файл
Boolean
Установка чекбокса запускает проверку на наличие указанного файла Excel. Если проверка выявит, что файл отсутствует, то: 1) При записи новой информации робот создаст файл Excel и добавит в него данные. 2) При попытке чтения несуществующего файла вернется ошибка
Присоединяться
Boolean
Только для Interop. Установка чекбокса позволяет присоединиться к файлу, который открыт вручную.
🔸
Важно! Если вы присоединились к такому файлу, то и закрывать его тоже потребуется вручную
Открывать только на чтение
Boolean
Только для Interop. Определяет, нужно ли открывать указанный файл только для чтения. По умолчанию не установлен.
🔸
Ограничения: настройка будет проигнорирована, если включено свойство «Присоединяться», или если указан массив байтов, или используется файл в формате текста с разделителями
Пароль
String
Пароль для открытия защищенного файла Excel
Пароль (зашифрованный)
Зашифрованный пароль от файла Excel. В целях безопасности пароль в формате SecureString не хранится в открытом виде. Получить его можно, например, из программы «Диспетчер учетных данных» (Credential Manager), после чего вставить в это поле
R1C1
Boolean
Только для DX. Установка чекбокса позволяет указывать диапазон ячеек в элементах Excel, используя стиль ссылок R1C1. По умолчанию чекбокс выключен, а диапазоны указываются в формате A1. При использовании стиля R1C1, убедитесь, что в файле Excel он тоже установлен (подробнее см. ниже, в подразделе Стиль ссылок R1C1)
Загружать AddIn-ы
Boolean
Только для Interop. Определяет, нужно ли переподключать установленные дополнения (надстройки). Общие сведения о надстройках Excel приведены здесь. Подробнее о работе этого свойства см. ниже, в подразделе Надстройки Excel
Отображать Excel
Boolean
Только для Interop. Если параметр включен, на экране будет отображаться приложение Excel
Массив байтов
byte[]
Массив байтов документа
Csv:
Разделитель
String
Разделитель колонок в файле с расширением *.csv. По умолчанию ";". Для режима Interop необходима кодировка UTF-8 BOM или UTF-16 LE

Стиль ссылок R1C1

Excel может использовать стиль ссылок R1C1, в котором строки и столбцы представлены в виде чисел на рабочем листе. Стиль ссылок R1C1 полезен для вычисления позиций строк и столбцов в макросах. В стиле R1C1 Excel указывает расположение ячейки с "R", за которой следует номер строки, и "C", за которой следует номер столбца.
Чтобы установить/снять в Excel стиль R1C1, выполните действия:
  1. 1.
    Запустите Microsoft Excel.
  2. 2.
    В меню Файл щелкните пункт Параметры.
  3. 3.
    Откройте вкладку Формулы.
  4. 4.
    В разделе Работа с формулами щелкните, чтобы установить/снять флажок Стиль ссылок R1C1, затем нажмите кнопку ОК.
При установке флажка Стиль ссылок R1C1 будет изменен стиль ссылок заголовков строк и столбцов, а ссылки на ячейки из стиля A1 изменятся на стиль R1C1.

Надстройки Excel

Чтобы воспользоваться установленными надстройками в Excel, их требуется перезагрузить. За это отвечает свойство элемента Загружать AddIn-ы (Interop): с его помощью будет совершена попытка переподключить все активные надстройки. Список активных надстроек можно просмотреть в Excel в меню Файл > Параметры > Надстройки.
Однако бывают случаи, когда использование свойства не помогает загрузить какую-то надстройку. Например, если для нее нужны права администратора*, или если есть конфликт с центром безопасности MS Office.
*Например, для установки/удаления надстроек COM нужны права администратора. Свойство Загружать AddIn-ы не сможет их установить.

Запуск через Приложение Excel

Если запуск Робота не приводит к перезагрузке надстроек, то, вероятно, происходит вмешательство центра безопасности MS Office. Например, источник файла расценивается как неблагоприятный. В этом случае следует правильным образом сконфигурировать MS Office: необходимо, чтобы при вызове приложения по ярлыку (Пуск > Программы > Excel) оно загружало требуемые надстройки без ограничений от центра безопасности. Тогда Еxcel, запущенный через контейнер Приложение Excel, тоже загрузит нужные надстройки.

Запуск из командной строки

Запуск Excel из командной строки обычным образом не загружает все надстройки, поэтому меню и функциональность приложения могут отличаться. Чтобы этого не происходило, команда запуска должна содержать дополнительный ключ /x:
"/x Starts a new instance (a separate process) of Excel."
Пример**:
"excel.exe /x "c:\My Folder\book1.xlsx""
Если к командной строке добавить этот переключатель, то вид Еxcel, запущенный из командной строки, будет соответствовать внешнему виду приложения, запущенному через контейнер Приложение Excel (Interop). Подробнее про особенности командной строки можно прочитать здесь.
**Вся команда в элементе Командная строка должна быть в кавычках.

Только код

Пример использования элемента в процессе с типом Только код (Pure code):
C#
Python
JavaScript
LTools.Office.ExcelApp app = LTools.Office.ExcelApp.Init(wf, "file", ";", LTools.Office.Model.InteropTypes.DX);
LTools.Office.ExcelApp app = LTools.Office.ExcelApp.Init(wf, System.IO.File.ReadAllBytes("file"), ";", LTools.Office.Model.InteropTypes.DX);
app = LTools.Office.ExcelApp.Init(wf, "file", ";", LTools.Office.Model.InteropTypes.DX)
app = LTools.Office.ExcelApp.Init(wf, System.IO.File.ReadAllBytes("file"), ";", LTools.Office.Model.InteropTypes.DX)
var app = _lib.LTools.Office.ExcelApp.Init(wf, "file", ";", _lib.LTools.Office.Model.InteropTypes.DX);
var app = _lib.LTools.Office.ExcelApp.Init(wf, _lib.System.IO.File.ReadAllBytes("file"), ";", _lib.LTools.Office.Model.InteropTypes.DX);