Таблица ole для excel

С помощью OLE можно включать контент из других программ, таких как Word или Excel.

OLE поддерживается многими различными программами, а OLE используется для того, чтобы содержимое, созданное в одной программе, было доступно в другой программе. Например, можно вставить документ Office Word в книгу Office Excel. Чтобы узнать, какие типы содержимого можно вставить, на вкладке Вставка в группе Текст нажмитекнопку Объект. В поле Тип объекта отображаются только программы, которые установлены на компьютере и поддерживают объекты OLE.

При копировании данных между Excel или любой программой, которая поддерживает OLE, например Word, вы можете скопировать их как связанный объект или внедренный объект. Основные различия между связанными и внедренными объектами заключается в том, где хранятся данные и как обновляется объект после его конечный файл. Внедренные объекты хранятся в книге, в которую они вставляются, и не обновляются. Связанные объекты остаются отдельными файлами, и их можно обновлять.

Связанные и внедренные объекты в документе

Связанные и внедренные объекты в документе Office для Windows

1. Внедренный объект не имеет подключения к исходным файлам.

2. Связанный объект связан с исходным файлом.

3. Исходный файл обновляет связанный объект.

Когда использовать связанные объекты

Если вы хотите, чтобы данные в конечный файл обновлялись при исходный файл изменения, используйте связанные объекты.

При связываемом объекте исходные данные сохраняются в исходном файле. В конечном файле отображается представление связанных данных, но хранится только расположение исходных данных (и размер, если объект является объектом диаграммы Excel). Исходный файл должен оставаться доступным на компьютере или в сети, чтобы сохранить связь с исходными данными.

Связанные данные могут обновляться автоматически при изменении исходных данных в исходном файле. Например, если вы вы выбрали абзац в документе Word, а затем вклеили его как связанный объект в книгу Excel, то при изменении сведений в документе Word сведения могут обновляться в Excel.

Когда использовать внедренные объекты

Если вы не хотите обновлять скопированные данные при их внесении в исходный файл, используйте внедренный объект. Версия источника полностью внедрена в книгу. При копировании данных как внедренных объектов в файле назначения требуется больше места на диске, чем при связываи.

Когда пользователь открывает файл на другом компьютере, он может просмотреть внедренный объект, не имея доступа к исходным данным. Поскольку внедренный объект не имеет ссылок на исходный файл, он не обновляется при изменении исходных данных. Чтобы изменить внедренный объект, дважды щелкните его, чтобы открыть и изменить в программе-источнике. На компьютере должна быть установлена программа-источник (или другая программа, которая может редактировать объект).

Изменение способа отображения объекта OLE

Вы можете отобразить связанный объект или внедренный объект в книге точно так же, как в программа-источник или в качестве значка. Если книга будет просмотрена в Интернете и вы не собираетесь ее печатать, вы можете отобразить объект в виде значка. Таким образом уменьшается объем отображаемого пространства, занимаемого объектом. Пользователи, которые хотят отобразить сведения, могут дважды щелкнуть значок.

Внедрение объекта на лист

  1. Щелкните ячейку листа, в которую вы хотите вставить объект.

  2. На вкладке Вставка в группе Текст нажмите кнопку Объект Значок объекта на ленте.
    Вставка объекта

  3. В диалоговом окне Объект перейдите на вкладку Создание из файла.

  4. Нажмите кнопку Обзор и выберите файл, который вы хотите вставить.

  5. Если вы хотите вставить в электронную таблицу значок, а не содержимое файла, установите флажок В виде значка. Если флажки не установлены, Excel выводит первую страницу файла. В обоих случаях при двойном щелчке открывается полный файл. Нажмите кнопку ОК.

    Примечание: После добавления значка или файла его можно перетащить в любое место на нем. Кроме того, вы можете с помощью химок и химок переумноовать значок или файл. Чтобы найти их, щелкните файл или значок один раз.

Вставка ссылки на файл

Иногда нужно просто добавить ссылку на объект, а не внедрять его. Это можно сделать, если книга и объект, который вы хотите добавить, хранятся на сайте SharePoint, общем сетевом диске или в аналогичном постоянном расположении. Это удобно, если связанный объект изменяется, так как ссылка всегда будет открывать его последнюю версию.

Примечание: Если связанный файл переместить, ссылка не будет работать.

  1. Щелкните ячейку листа, в которую вы хотите вставить объект.

  2. На вкладке Вставка в группе Текст нажмите кнопку Объект Значок объекта на ленте.
    Вставка объекта

  3. Перейдите на вкладку Создание из файла.

  4. Нажмите кнопку Обзор, а затем выберите файл, на который вы хотите создать ссылку.

  5. Установите флажок Связь с файлом, а затем нажмите кнопку ОК.

Создание объекта в Excel

Вы можете создать объект с помощью другой программы, не выходя из книги. Например, если вы хотите добавить более подробное описание в диаграмму или таблицу, вы можете создать в Excel внедренный документ, например Word или PowerPoint. Можно вставить объект непосредственно на лист или добавить значок для открытия файла.

Внедренный объект является документом Word.

  1. Щелкните ячейку листа, в которую вы хотите вставить объект.

  2. На вкладке Вставка в группе Текст нажмите кнопку Объект Значок объекта на ленте.
    Вставка объекта

  3. На вкладке Новый выберите в списке тип объекта, который вы хотите вставить. Если вы хотите вставить в электронную таблицу значок, а не сам объект, установите флажок В виде значка.

  4. Нажмите кнопку ОК. В зависимости от типа вставляемого файла откроется новое окно программы или появится окно редактирования.

  5. Создайте объект, который вы хотите вставить.

    Если Excel открыл новое окно программы для создания объекта, вы можете работать непосредственно в нем.

    Вы можете редактировать внедренный документ Word прямо в Excel.

    Когда вы закончите работу в этом окне, вы можете перейти к другим задачам, не сохраняя внедренный объект. При закрытии книги новые объекты будут сохранены автоматически.

    Примечание: После добавления объекта его можно перетащить в любое место на Excel. Вы также можете с помощью химок переуравнять размер объекта. Чтобы найти их, щелкните объект один раз.

Внедрение объекта на лист

  1. Щелкните ячейку листа, в которую вы хотите вставить объект.

  2. На вкладке Вставка в группе Текст нажмите кнопку Объект.

    Элемент "Объект" находится на вкладке "Вставка".

  3. Откройте вкладку Из файла.

    Вкладка "Создать из файла" в диалоговом окне "Объект"

  4. Нажмите кнопку Обзор и выберите файл, который вы хотите вставить.

  5. Если вы хотите вставить в электронную таблицу значок, а не содержимое файла, установите флажок В виде значка. Если флажки не установлены, Excel выводит первую страницу файла. В обоих случаях при двойном щелчке открывается полный файл. Нажмите кнопку ОК.

    Примечание: После добавления значка или файла его можно перетащить в любое место на нем. Кроме того, вы можете с помощью химок и химок переумноовать значок или файл. Чтобы найти их, щелкните файл или значок один раз.

Вставка ссылки на файл

Иногда нужно просто добавить ссылку на объект, а не внедрять его. Это можно сделать, если книга и объект, который вы хотите добавить, хранятся на сайте SharePoint, общем сетевом диске или в аналогичном постоянном расположении. Это удобно, если связанный объект изменяется, так как ссылка всегда будет открывать его последнюю версию.

Примечание: Если связанный файл переместить, ссылка не будет работать.

  1. Щелкните ячейку листа, в которую вы хотите вставить объект.

  2. На вкладке Вставка в группе Текст нажмите кнопку Объект.

    Элемент "Объект" находится на вкладке "Вставка".

  3. Откройте вкладку Из файла.

  4. Нажмите кнопку Обзор, а затем выберите файл, на который вы хотите создать ссылку.

  5. Установите флажок Связь с файлом, а затем нажмите кнопку ОК.

    На вкладке "Создать из файла" установите флажок "Связать с файлом".

Создание объекта в Excel

Вы можете создать объект с помощью другой программы, не выходя из книги. Например, если вы хотите добавить более подробное описание в диаграмму или таблицу, вы можете создать в Excel внедренный документ, например Word или PowerPoint. Можно вставить объект непосредственно на лист или добавить значок для открытия файла.

Внедренный объект является документом Word.

  1. Щелкните ячейку листа, в которую вы хотите вставить объект.

  2. На вкладке Вставка в группе Текст нажмите кнопку Объект.

    Элемент "Объект" находится на вкладке "Вставка".

  3. На вкладке Новый выберите в списке тип объекта, который вы хотите вставить. Если вы хотите вставить в электронную таблицу значок, а не сам объект, установите флажок В виде значка.

    Вкладка "Создать" в диалоговом окне "Объект"

  4. Нажмите кнопку ОК. В зависимости от типа вставляемого файла откроется новое окно программы или появится окно редактирования.

  5. Создайте объект, который вы хотите вставить.

    Если Excel открыл новое окно программы для создания объекта, вы можете работать непосредственно в нем.

    Вы можете редактировать внедренный документ Word прямо в Excel.

    Когда вы закончите работу в этом окне, вы можете перейти к другим задачам, не сохраняя внедренный объект. При закрытии книги новые объекты будут сохранены автоматически.

    Примечание: После добавления объекта его можно перетащить в любое место на Excel. Вы также можете с помощью химок переуравнять размер объекта. Чтобы найти их, щелкните объект один раз.

Связывать или встраить содержимое из другой программы с помощью OLE

Вы можете связать или встраить весь контент или его часть из другой программы.

Создание ссылки на содержимое из другой программы

  1. Щелкните на том месте таблицы, куда вы хотите связанный объект.

  2. На вкладке Вставка в группе Текст нажмите кнопку Объект.

    Изображение ленты Excel

  3. Откройте вкладку Из файла.

  4. В поле Имя файла введите имя файла или нажмите кнопку Обзор, чтобы выбрать его из списка.

  5. Выберите поле Связать с файлом.

  6. Выполните одно из указанных ниже действий.

    • Чтобы отобразить содержимое, разо убедитесь, что он отображается в значке.

    • Чтобы отобразить значок, выберите его. При желании, чтобы изменить изображение или подпись значка по умолчанию, нажмите кнопку Изменить значок ,а затем щелкните нужный значок в списке Значки или введите подпись в поле Название.

    Примечание: С помощью команды Объект нельзя вставлять рисунки и файлы определенных типов. Чтобы вставить рисунок или файл, на вкладке Вставка в группе Иллюстрации нажмите кнопку Рисунок.

Встраить содержимое из другой программы

  1. Щелкните на том месте таблицы, куда вы хотите внедренный объект.

  2. На вкладке Вставка в группе Текст нажмите кнопку Объект.

    Изображение ленты Excel

  3. Если документ еще не существует, перейдите на вкладку Создание. В поле Тип объекта выберите тип объекта, который вы хотите создать.

    Если документ уже существует, перейдите на вкладку Создание из файла. В поле Имя файла введите имя файла или нажмите кнопку Обзор, чтобы выбрать его из списка.

  4. Чтобы сделать это, разочистим его.

  5. Выполните одно из указанных ниже действий.

    • Чтобы отобразить содержимое, разо убедитесь, что он отображается в значке.

    • Чтобы отобразить значок, выберите его. Чтобы изменить изображение или метку значка по умолчанию, нажмите кнопку Изменить значок ивыберите нужный значок в списке Значки или введите подпись в поле Подпись.

Связывать или встраить частичное содержимое из другой программы

  1. В программе, отличной от Excel, выберите сведения, которые нужно скопировать как ссылку или внедренный объект.

  2. На вкладке Главная в группе Буфер обмена нажмите кнопку Копировать.

    Изображение ленты Excel

  3. Перейдите на нужный таблицу и щелкните место, на котором они должны отображаться.

  4. На вкладке Главная в группе Буфер обмена щелкните стрелку под кнопкой Вставить и выберите команду Специальная вставка.

  5. Выполните одно из указанных ниже действий.

    • Чтобы вклеить данные как связанный объект, нажмите кнопку Вировать ссылку.

    • Чтобы в paste information as an embedded object , click Paste. В поле Как щелкните запись со словом «объект» в названии. Например, если вы скопировали данные из документа Word, выберите объект документа Microsoft Word.

Изменение способа отображения объекта OLE

  1. Щелкните правой кнопкой мыши значок или объект, выберите тип объекта(например,Документ) и нажмите кнопку Преобразовать.

  2. Выполните одно из указанных ниже действий.

    • Чтобы отобразить содержимое, разо убедитесь, что он отображается в значке.

    • Чтобы отобразить значок, выберите его. При желании вы можете изменить изображение или метку значка по умолчанию. Для этого нажмите кнопку Изменить значоки выберите нужный значок в списке Значки или введите подпись в поле Подпись.

Управление обновлениями связанных объектов

Ссылки на другие программы можно обновлять следующим образом: автоматически при конечный файл; вручную, если вы хотите увидеть предыдущие данные перед обновлением с новыми данными из исходный файл; или при запросе обновления независимо от того, включено ли автоматическое или ручное обновление.

Настройка ссылки на другую программу для обновления вручную

  1. На вкладке Данные в группе Подключения нажмите кнопку Изменить связи.

    Изображение ленты Excel

    Примечание: Команда Изменить ссылки недоступна, если файл не содержит ссылок на другие файлы.

  2. Из списка Источник выберите связанный объект, который необходимо изменить. A встолбце Обновление означает, что ссылка является автоматической, а M в столбце Обновление означает, что для ссылки установлено обновление вручную.

    Совет: Для выделения нескольких связанных объектов щелкните каждый из них, удерживая нажатой клавишу CTRL. Чтобы выбрать все связанные объекты, нажмите CTRL+A.

  3. Чтобы обновить связанный объект только при нажатии кнопки Обновить значения,выберите вручную.

Настройка автоматического обновления ссылки на другую программу

  1. На вкладке Данные в группе Подключения нажмите кнопку Изменить связи.

    Изображение ленты Excel

    Примечание: Команда Изменить ссылки недоступна, если файл не содержит ссылок на другие файлы.

  2. Из списка Источник выберите связанный объект, который необходимо изменить. A встолбце Обновление означает, что ссылка будет обновляться автоматически, а M в столбце Обновление означает, что связь должна обновляться вручную.

    Совет: Для выделения нескольких связанных объектов щелкните каждый из них, удерживая нажатой клавишу CTRL. Чтобы выбрать все связанные объекты, нажмите CTRL+A.

  3. Нажмите кнопку ОК.

Проблема: не получается обновить автоматические ссылки на моем сайте

Параметр Автоматически может быть переопределен параметром Обновлять ссылки на другие документы Excel.

Чтобы автоматически обновлять связи с объектами OLE:

  1. Нажмите кнопку Microsoft Office Изображение кнопки Office , щелкните Параметры Excelи выберите категорию Дополнительные параметры.

  2. Убедитесь,что в поле При вычислении данной книги выбрано поле Обновить связи с другими документами.

Обновление ссылки на другую программу

  1. На вкладке Данные в группе Подключения нажмите кнопку Изменить связи.

    Изображение ленты Excel

    Примечание: Отсутствие команды Изменить связи означает, что файл не содержит связанных данных.

  2. Из списка Источник выберите связанный объект, который необходимо изменить.

    Совет: Для выделения нескольких связанных объектов щелкните каждый из них, удерживая нажатой клавишу CTRL. Чтобы выбрать все связанные объекты, нажмите CTRL+A.

  3. Нажмите кнопку Обновить значения.

Редактирование содержимого в программе OLE

Находясь в Excel, вы можете изменить контент, связанный или внедренный из другой программы.

Изменение связанного объекта в программе-источнике

  1. На вкладке Данные в группе Подключения нажмите кнопку Изменить связи.

    Изображение ленты Excel

    Примечание: Отсутствие команды Изменить связи означает, что файл не содержит связанных данных.

  2. В списке Исходный файл выберите источник файла связанный объект и нажмите кнопку С открытым кодом.

  3. Внести нужные изменения в связанный объект.

  4. Зайдите программа-источник, чтобы вернуться к файлу назначения.

Изменение внедренного объекта в программе-источнике

  1. Дважды щелкните внедренный объект, чтобы открыть его.

  2. Внести в объект нужные изменения.

  3. Если вы редактируете объект на месте в открытой программе, щелкните в любом месте за пределами объекта, чтобы вернуться к конечный файл.

    Если вы редактируете внедренный объект в программе-источнике в отдельном окне, зайдите из программы-источника, чтобы вернуться к файлу назначения.

Примечание: При двойном щелчке внедренных объектов, таких как видеоклипы и звуковые клипы, объект воспроизводится, а не открывается программа. Чтобы изменить один из внедренных объектов, щелкните правой кнопкой мыши значок или объект, выберите тип объекта(например,Объект клипа мультимедиа) и нажмите кнопку Изменить.

Изменение внедренного объекта в программе, которая не является программой-источником

  1. Выберите внедренный объект, которую вы хотите изменить.

  2. Щелкните правой кнопкой мыши значок или объект, выберите тип объекта(например,Документ) и нажмите кнопку Преобразовать.

  3. Выполните одно из указанных ниже действий.

    • Чтобы преобразовать внедренный объект в тип, который вы указали в списке, нажмите кнопку Преобразовать в.

    • Чтобы открыть внедренный объект с типом, который вы указываете в списке, не изменяя тип внедренного объекта, нажмите кнопку Активировать.

Выбор объекта OLE с помощью клавиатуры

  1. Нажмите CTRL+G, чтобы отобразить диалоговое окно Перейти.

  2. Нажмите кнопкуСпециальный, выберите объектыи нажмите кнопку ОК.

  3. Нажимая tab, выберите нужный объект.

  4. Нажмите shift+F10.

  5. Найдите пункт Объект или Объект диаграммыи нажмите кнопку Изменить.

Проблема: при двойном щелчке связанного или внедренного объекта появляется сообщение «Не удается изменить»

Это сообщение появляется, исходный файл или программа-источник не открывается.

Убедитесь, что доступна программа-источник     Если программа-источник не установлена на компьютере, преобразуйте объект в формат файла установленного приложения.

Обеспечение достаточной памяти     Убедитесь, что у вас достаточно памяти для запуска программы-источника. Закроем другие программы, чтобы освободить память.

Закрыть все диалоговое окно     Если исходная программа запущена, убедитесь, что в ней нет открытых диалогов. Переключиться в программу-источник и закрыть все открытые диалоговое окно.

Закрыть исходный файл     Если исходный файл является связанным объектом, убедитесь, что он не открыт другим пользователем.

Убедитесь, что имя файла не изменилось     Если исходный файл, который вы хотите изменить, является связанным объектом, убедитесь, что он имеет то же имя, что и при ее создания, и что он не был перемещен. Выберите связанный объект и нажмите кнопку Изменить связи в группе Подключения на вкладке Данные, чтобы увидеть имя источника. Если исходный файл переименован или перемещен, используйте кнопку Изменить источник в диалоговом окне Изменение связей, чтобы найти исходный файл и повторно подключить ссылку.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Содержание

  1. Часть 1. Работа с OLE-сервером Excel.
  2. 1.1 Получение доступа к интерфейсу Application для Excel.
  3. 1.2 Интерфейсы и константы
  4. 1.3 Создание рабочих книг
  5. 1.4 Вывод информации в ячейки
  6. Объект OLEObjects (Excel)
  7. Замечания
  8. Пример
  9. Методы
  10. Свойства
  11. См. также
  12. Поддержка и обратная связь
  13. Вставка объектов OLE в Word, Excel, PowerPoint с помощью C#
  14. Вставьте PDF как объект OLE в документ MS Word на С##
  15. Вставьте документ Word как объект OLE в электронную таблицу Excel на С##
  16. Добавить PDF как объект OLE в презентацию PowerPoint на С##
  17. Вывод#

Часть 1. Работа с OLE-сервером Excel.

Поставим целью из приложения (контроллера автоматизации) создать документ, изображенный на Рис 1.1. Он типичен с точки зрения созданя прикладных программ, использующих для вывода информации Excel и содержит три наиболее часто используемых составных элемента: текстовое поле, электронную таблицу и диаграмму. Путь создания данного документа — это шаги, которые позволят освоить работу с OLE сервером Excel.

Рис 1.1 Итоговый документ, сформированный контроллером.

Для того, чтобы запустить приложение Word или Excel из программы на «Borland C++ Builder» достаточно выполнить, например, следующий код:

В директории, откуда запущена программы или по указанному пути (например, вместо *.xls указан файл, а вместо параметра NULL путь C:AB) должен находиться файл с расширением соответственно .doc или .xls, пусть даже пустой.

Приложения будут запущены (есть и другие способы запуска), но управлять ими нельзя — с момента запуска они автономны от запустивших их приложений.

Для запуска Word и Excel как серверов автоматизации необходимо выполнить примерно одни и теже действия. Word посвящен следующий раздел, а здесь далее речь пойдет исключительно о сервере Excel.

1.1 Получение доступа к интерфейсу Application для Excel.

1. Включить в проект модули:

2. Определить — лучше глобально (для наглядности и удобства) — переменные, отражающие иерархию объектов Excel
Приложение->Набор книг->Книга->Набор страниц->Страница->ячейки(ячейка):

3. создать объект автоматизации:

Можно видеть у отдельных авторов в некоторых примерах конструкцию вида Excel.Application.9 и т.п. , что не является обязательным, а скорее всего и вредным — ориентация будет на конкретную библиотеку *.olb. Без указания версии Offise приложение берет ее из реестра (HREY_CLASSES_ROOT раздел Word.Application ключ CurVer, там можно прочитать Excel.Application.8 или Excel.Application.9 или . ).

С этого момента можно пользоваться свойствами и методами созданного ole сервера, а именно:

Чтение значения свойства.

1.2 Интерфейсы и константы

Список интерфейсов и констант в Builder можно получить при просмотре библиотеки типов Microsoft Word/Exvel Object Library.

Создав пустое приложение (File/New/Application) и выбрав пункт меню в Buildere File/Open, указав в списке возможных файлов Type Library и выбрав соответствующую библиотеку типов и загрузить ее (для Excel в зависимости от версии это, например, Excel9.olb, для Word — MSWord9.olb). Библиотеки, как правило находится в директории

Загрузка идет несколько минут (библиотеки велики) и по окончании будет создана панель навигатор (Рис 1.2). с описанием всех использованных констант, а также свойств и методов содержащихся в сервере объектов.

Рис 1.2 Библиотека Excel9.olb.

При создании этих файлов появятся сообщения об ошибках, связанные с тем, что в коде Excel и Word могут использоваться зарезервированные слова С++.

После этого возможен просмотр методов и доступ к свойствам и константам указанного интерфейса. Например, для свойства WorkBooks — Application, Creator, Parrent, Add, Close, Count, Item. Open . — это методы, которые в свою очередь имеют свои свойства, которые можно посмотреть на закладке Parametrs.

При использовании констант будем использовать их числовые значения!! — иначе в файл .cpp придется включать модуль с указанием конкретной версии Offise — например:
#include

Как показано на рисунке, например константа xlBuiltIn имеет значение 21.

Поиск и просмотр возможных констант — наиболее частая потребность при написании программы, здесь довольно затруднителен — нет даже меню поиск, поэтому лучше преобразовать информацию из библиотеки в текстовый файл, нажав крайнюю правую кнопочку навигатора (Export to idl), и преобразованный файл появится как файл с расширением .idl в проекте рядом с файлом Unit1.cpp — теперь достаточно сохранить его в удобном месте и для поиска использовать любой текстовый редактор, к примеру встроенный в FAR.

Для продолжения работы после сохранения файла *.idl и закрытия *.olb необходимо вернуться в рабочую директорию проекта.

Свойств и методов для серверов Word и Excel в указанных библиотеках пожалуй не менее чем в компонентах Builder, поэтому для ориентации при написании программ в среде Borland C++ Builder лучше использовать так называемый » хитрый метод «.

Суть его в переводе макроса из кода Visual Basic в С++ код. Этот способ также позволяет просмотреть имена констант линий, стилей, цветов . Уже по именам легко найти их значения в библиотеках и в сохраненном файле .idl.

1. Запустить Ехель.

2. Сервис/Maкрос/Начать запись

3. Выполннить последовательность нужных действий.

4. Остановить запись

5. Вызвать Visual Basic (Alt+F11)

7. Перевести код из кода Visual Basic в С++.

1.3 Создание рабочих книг

Рассмотрим создание двух рабочих книг из 3х и 5ти листов.

Создаем новое приложение (File/New/Application) и сохраним его файлы в директории по умолчанию (Projects) c именами по умолчанию Unit1.cpp, Unit1.h, Unit1.dfm, Project1.cpp, Project1.bpr. Имена на данном этапе не цель, хотя не возбраняется создать новую директорию и дать приложению и файлам подходящие имена.

Переменные соответствующие используемым в программе объектам, а именно:

определим сразу все и глобально — или в файле Unit1.h (в разделе private:), или перед функциями в Unit1.cpp, хотя для данного этапа требуются пока не все переменные и можно определить нужные и локально.

Переменная fStart служит индикатором того, что сервер запущен.

Разместим на форме три кнопки (из вкладки Standart компонент TButton). Подписывать кнопки также не будем (сейчас это тоже не цель), но запомним, что по первой кнопке будем работать с таблицей, по второй с диаграммой, а по третьей закрывать сервер и приложение. Выполним два левых клика по Button1 и Button3, создаем таким образом обработчики события нажатия кнопки.

Третья кнопка таким образом служит для выхода из программы и закрытия сервера.

В обработчике нажатия первой кнопки начнем формировать код программы.

Создаем Объект Excel.Application.

В принципе конструкцию try catch желательно использовать со всеми Ole вызовами, но громоздкость программы сделает ее ненаглядной. В дальнейшем можно оформить все используемые вызовы в виде класса, но на данном этапе задача стоит в освоении богатства возможностей вызовов, а не ловля возможных букашек. Да и все, приведенные сдесь вызовы 100% работоспособны.

Сделаем приложение видимым (лучше наверное всетаки в конце, но так нагляднее — будет видно как идет заполнение таблиц и т.п.).

Переменной vVarBooks присваивается значение Workbooks — свойство объекта Excel.Application, содержащее набор рабочих книг Excel.

SheetsInNewWorkbook задает количество листов в создаваемой книге, пусть в первой книге их будет 3(Кстати по умолчани тоже создается книга, содержащая три листа).

Добавляем книгу из 3 листов в объект vVarBooks.

Количество листов во второй создаваемой книге, пусть будет 5.

Добавляем книгу из 5 листов в объект

Переменная vVarBook содержит ссылку на текущую книгу. (Пусть текущая книга 1).

Переменной vVarSheets присваиваем значение Worksheets — свойство объекта Excel.Application, содержащее набор страниц книги Excel.

Присвоение имен листам книги. Т.е, необходимо взять лист выбранной книги и дать ему имя. Заодно и покрасим листы, для чего в любом графическом редакторе создадим два файла с именами a.gif и b.gif размером в несколько пиаселей и соответственно с желтой и красной заливкой. Размер сумарный файлов менее 1к, но приятнее работать не с белым листом. Файлы должны быть помещены в текущую директорию.

Теперь первый раз запустим приложение и порадуемся что все работает как задумано и на экране две книги Excel и в первой два из трех листов раскрашены.

1.4 Вывод информации в ячейки

Для заполнения таблицы используем датчик случайных чисел. Таблицу будем рисовать в первой книге на желтом листе. Так как перед этим мы работали с первой книгой, то она на данный момент активна.

Основные шаги при заполнении таблицы повторяются:

2. Выбрать ячейку или группу ячеек на выбранном листе. Для отдельной ячейки (x и y координаты ячейки):

Для группы ячеек:

3. Установить режим выравнивания текста в ячейке (ячейках).

Выравнивание текста — вертикальное — Константы

Источник

Объект OLEObjects (Excel)

Коллекция всех объектов OLEObject на указанном листе.

Замечания

Каждый объект OLEObject представляет элемент управления ActiveX или связанный или внедренный объект OLE.

Элемент ActiveX на листе имеет два имени: имя фигуры, содержащей элемент управления, которое отображается в поле Имя при просмотре листа, и кодового имени элемента управления, которое отображается в ячейке справа от (Имя) в окно свойств.

При первом добавлении элемента управления на лист имя фигуры и код совпадают. Однако при изменении имени фигуры или кодового имени другое не будет автоматически изменено на соответствие. Последнее, однако, похоже, изменилось с версиями Excel. В версии 16.0 оба варианта поддерживают согласованность и невозможно изменить один из двух вариантов в одиночку.

Пример

Используйте метод OLEObjects объекта Worksheet , чтобы вернуть коллекцию OLEObjects .

В следующем примере все объекты OLE скрываются на одном листе.

Используйте метод Add , чтобы создать объект OLE и добавить его в коллекцию OLEObjects . В следующем примере создается новый объект OLE, представляющий точечный файл Arcade.bmp, и добавляет его на лист.

В следующем примере создается новый элемент ActiveX (поле списка) и он добавляется на первый лист.

Имя кода элемента управления используется в именах его процедур событий. Однако при возврате элемента управления из коллекции Shapes или OLEObjects для листа необходимо использовать имя фигуры, а не код, чтобы ссылаться на элемент управления по имени. Например, предположим, что вы добавили флажок на лист и что имя фигуры по умолчанию и код по умолчанию — CheckBox1. Если изменить имя кода элемента управления, введя chkFinished рядом с (Name) в окно свойств, необходимо использовать chkFinished в именах процедур событий, но по-прежнему необходимо использовать CheckBox1 для возврата элемента управления из коллекции Shapes или OLEObject, как показано в следующем примере.

Методы

Свойства

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Вставка объектов OLE в Word, Excel, PowerPoint с помощью C#

OLE означает связывание и внедрение объектов. Он предоставляется Microsoft и позволяет создавать и редактировать документы, содержащие элементы или объекты, созданные различными приложениями.

Например, вы можете встраивать электронные таблицы, изображения и звуковые клипы как объекты OLE в документ Word. Вы можете использовать эти OLE-объекты в документе Word и не беспокоиться о повторном переключении на несколько приложений. Вы можете внедрять или вставлять такие объекты программно, используя OLE в C#.

Эта статья расскажет вам, как вы можете:

Шаги в этой статье и примеры кода используют GroupDocs.Merger for .NET. Поэтому обязательно установите API одним из следующих способов:

  • Установите с помощью диспетчера пакетов NuGet.
  • Скачать DLL и указать ссылку на нее в проекте.

Вставьте PDF как объект OLE в документ MS Word на С##

Вот шаги и пример кода C#, чтобы показать, как встроить файл PDF в документ Word как объект OLE:

  1. Создайте экземпляр OleWordProcessingOptions с параметрами внедрения и документом для внедрения в документ Word.
  2. Теперь создайте экземпляр объекта Merge с путем или потоком исходного документа Word.
  3. Вызовите метод ImportDocument и передайте объект Параметры обработки текста OLE, заданные на шаге 1.
  4. Вот и все. Вызовите метод Save, чтобы получить результирующий документ Word, содержащий документ PDF в качестве объекта OLE.

Вставьте документ Word как объект OLE в электронную таблицу Excel на С##

Мы можем встраивать объекты OLE в электронные таблицы Excel. Пример кода CSharp и приведенные ниже шаги, объясняющие, как добавить документ Word в электронную таблицу Excel в качестве объекта OLE:

  1. Создайте экземпляр OleSpreadsheetOptions с параметрами встраивания и документом для встраивания в электронную таблицу Excel.
  2. Теперь создайте экземпляр объекта Merger с путем или потоком исходной электронной таблицы.
  3. Теперь вызовите метод ImportDocument и передайте объект Параметры электронной таблицы OLE, заданные на шаге 1.
  4. Наконец, вызовите метод Save, чтобы получить результирующую электронную таблицу Excel, содержащую документ Word в качестве объекта OLE.

Добавить PDF как объект OLE в презентацию PowerPoint на С##

Точно так же здесь мы вставляем объекты в презентацию PowerPoint.

  1. Создайте экземпляр OlePresentationOptions с параметрами внедрения и документом для внедрения в презентацию PowerPoint.
  2. Теперь создайте экземпляр объекта Объединение с путем или потоком исходной презентации.
  3. Вызовите метод ImportDocument и передайте объект Опций представления OLE, заданных на шаге 1.
  4. Наконец, вызовите метод Save, чтобы получить результирующую презентацию PowerPoint с документом PDF в качестве объекта OLE.

Вывод#

Мы обсудили, как легко и быстро мы можем вставлять объекты OLE в документы Word, Excel или PowerPoint программно на C#. Существует лишь небольшая разница в коде для каждой цели, т.е. разные классы параметров OLE и его параметры для каждого формата файла:

  • OleWordProcessingOptions для встраивания объектов OLE в документ Word.
  • OleSpreadsheetOptions для встраивания объектов OLE в таблицы Excel.
  • OlePresentationOptions для встраивания объектов OLE в презентацию PowerPoint.

Вы можете узнать больше об API из документации или Давайте поговорим подробнее @ Бесплатный форум поддержки.

Источник

Вставка таблицы из Excel в AutoCAD – довольно актуальная задача, если принять во внимание, что часто на листе с разработанным чертежом приходится размещать и сопроводительную спецификацию.
Как вставить таблицу из Excel в AutoCAD

Собственно, AutoCAD имеет и свои инструменты создания таблиц: как черчения – для линий, так и текстовые для наполнения.

Но если:

  • необходимо обеспечить в будущем оперативное изменение таблиц более специализированными инструментами, которые в самой популярной программе инженерного проектирования просто отсутствуют;
  • таблицы содержат расчёты, которые в будущем могут корректироваться;
  • хочется предоставить возможность влиять на процесс сопровождения разработки лицам, не владеющим или не имеющим на компьютере AutoCAD –

тогда решение задачи, как вставить таблицу из Excel в AutoCAD, может очень помочь в работе.

Разработчику необходимо только себе чётко представлять назначение двух режимов работы Автокада – «Модели» и «Листа». Первый, по замыслу разработчиков системы, служит именно для проектирования – черчения. Второй – для подготовки чертежа к печати. Очевидно, что сопроводительные таблицы относятся к справочной информации, которая нужна только при печати, поэтому и место таким объектам только в режиме «Листа». Не стоит вставлять таблицы в Автокад в «Модели» – это искажает всю идею работы приложения (некоторые даже умудряются в «Модели» и рамки делать, и писать комментарий).

Операция вставки – алгоритм по шагам

Обращаем внимание, что рассматриваемое взаимодействие обеспечивает технология объектного связывания – OLE (некоторые приложения называют её ActiveX – активного взаимодействия). Данная технология давно применяется при связи результатов работы всех приложений, входящих в пакет Microsoft Office. Но дело в том, что не все приложения вне «Офиса» поддерживают эту технологию. Возможно, в вашем распоряжении такая версия Автокада, что она эту технологию и не поддерживает. Тогда вывод может быть только один – ставить другую, более новую версию (ну, или пользоваться тем, что предоставляет ваша версия, для черчения вполне подходящая).

Кроме того, работа по OLE-технологии при решении вопроса, как вставить таблицу Эксель в AutoCAD, немного отличается от выполнения той же задачи, например, в связке Excel – Word (или, например, PowerPoint).

Там, мы сначала создаём таблицу в Excel, а затем уже проводим её «специальную» вставку в Word. Работа в связке Autocad-Excel немного другая.

Здесь:

  1. Находясь в режиме «Листа» Автокада, идём в меню Insert/OLE Object («Вставка»/«OLE-объект»).

    Вставка OLE-объекта в Автокаде

    Вставка OLE-объекта в Автокаде

  2. В открывшемся окне выбираем переключатель «Создать новый» и в соседнем списке справа – «Лист Microsoft Office Excel» (возможно, в этом списке будет ещё вариант – «Лист Microsoft Office Excel 97-2003», это если вы умудрились поставить на свой комп несколько версий «Офисов»).

    Вставка объекта в Автокаде

    Вставка объекта в Автокаде

  3. Если этот табличный процессор есть на ПК, система его запускает и перебрасывает нас в работу с листом таблицы – заметьте, макет таблицы уже появился в Автокаде.
  4. Теперь можно создать необходимое в Экселе.
  5. При закрытии листа – выходе из программы, результат работы будет вставлен в Автокад. Собственно, вставка производится уже при входе в Excel, но таблица, само собой, пока пустая. При переносе таблицы сохраняется всё назначенное форматирование.

Замечаем некоторые нюансы.

Во-первых, сразу после выхода из таблицы на экране появляется окно настройки созданного объекта – его размер, масштаб, качество при печати (это снова к разговору о назначении режимов Автокада). Обычно данные настройки оставляют такими, какие они предлагаются по умолчанию, тем более что в будущем их можно оперативно изменить. Если нет необходимости, чтобы данное окно свойств появлялось постоянно, то можно сбросить переключатель вывода данного окна (он в его нижней части).

Во-вторых, если перед вставкой не был определён видовой экран, который должен содержать таблицу, то вставка произойдёт в верхний левый угол окна режима, в противном случае – в верхний левый угол видового экрана. Но в любом случае таблицу в будущем можно переместить в нужное место листа.

В-третьих. Не забудем, что это разные вещи – белый цвет заливки и цвет заливки по умолчанию. Изначально в Excel таблицы не имеют заливки своих ячеек – просто отсутствие заливки здесь визуально совпадает с белым цветом. Такое отсутствие заливки в Автокаде превращается в заливку по умолчанию, которая имеет чёрный цвет. Поэтому, если не предпринять никаких действий в табличном процессоре, вставленная таблица будет чёрной, что, вероятно, очень далеко от необходимости. Отсюда вывод – ещё в Excel таблицу нужно будет «залить» цветом, близким к белому (заливка белым ни к чему не приводит) и обеспечить, само собой, вывод линий ячеек.

Но мало того, что таблица будет «чёрной», вы не увидите в ней и никакой информации, так как чёрный цвет содержимого в Экселе помещается на чёрный фон ячеек в Автокаде: чёрный по чёрному, вот и получается «пустота» – давний приём компьютерных дизайнеров. То, что во вставленной таблице что-то есть, вы почувствуете, перейдя в Excel – там таблица отразится так, как надо.

В будущем при двойном щелчке мышкой на такой таблице в Автокаде произойдёт вызов Экселя и переброс в него для редактирования самой таблицы – производимые изменения при выходе отразятся на листе чертежа.

Советуем быть очень аккуратными при изменении размеров таблицы. Не забудем, что её визуальное представление даже в процессоре – это совсем не то, что мы получим при печати. Даже в Excel печать необходимо настраивать, что уж говорить об Автокаде – есть большая вероятность, что ваша таблица просто не поместится не только в выбранный для неё видовой экран, но и на лист в целом, придётся заняться масштабированием.

Замечаем ещё один нюанс – хоть вставка и производится в режиме «Листа», она отражается и в «Модели», что совершенно неприемлемо с точки зрения разработчика – таблица перекрывает сам чертёж. Поэтому вывод один – сначала в «Модели» организуйте специальный слой для размещения таблицы. Этот слой можно будет визуально отключать, чтобы он не загораживал сам чертёж (подобное поведение, кстати, согласуется с самой идеей применения слоёв).

Мы привели алгоритм вставки таблицы, когда она только создаётся. Часто возникает ситуация, что, конечно, разумнее, когда таблица создана заранее и хранится на диске в виде файла.

В этой ситуации при вставке после выбора «Insert»/«OLE-object» нужно выбрать переключатель «Вставка из файла». При нажатии на «ОК» появится стандартный запрос имени файла – окно выбора из содержимого жёсткого диска. Такая вставка уже не вызывает переход к самому Экселю – это удобно, когда его на самом деле пока на компьютере и нет.

При вставке через файл очень полезно установить ещё один «тонкий» переключатель – «Связать с файлом», он обеспечит более «продвинутую» работу. Теперь, изменяя этот файл таблицы в Экселе, вам не нужно заботиться о запуске Автокада – все изменения последний воспримет сразу после запуска и обновления внешних связей.

Имеем в виду и ещё одну небольшую особенность: для Автокада обычное дело – быстрое удаление объектов простым нажатием на клавишу DEL. Но данная возможность не работает с OLE-объектами, их удаляем – вырезаем уже через буфер обмена.

Таблица как гиперссылка

Есть и ещё один способ обеспечить в Автокаде вставку таблицы из Экселя – в качестве гиперссылки любого чертёжного объекта, обычно текстового. Здесь поступаем следующим образом:

  1. Выбираем объект.
  2. Идём в меню «Insert»/«Hyperlink» («Вставка»/«Гиперссылка»).

    Вставка таблицы как гиперссылки в Автокаде

    Вставка таблицы как гиперссылки в Автокаде

  3. В открывшемся окне с помощью кнопки «Файл» и следующего окна выбираем нужный файл.
  4. Выходим, присваивая объекту гиперссылку при нажатии на «ОК».

Теперь, когда мышка будет заходить на этот объект, она будет сопровождаться ещё и характерным значком гиперссылки с её адресом. Доступ к такому внешнему файлу будет возможен через контекстное меню объекта при выборе команды «Hyperlinks» – все гиперссылки (а их может быть у одного объекта несколько) будут приведены в выводимом рядом окне.

Другие варианты вставки

Некоторые версии Автокада предлагают другой способ решения поставленной задачи. Возможен и такой порядок работы:

  1. Переходим на вкладку «Вставка» на панели «Связывание и извлечение».
  2. Выбираем команду «Связь с данными».
  3. Выбираем таблицу Excel в открывшемся окне.

Можно воспользоваться и вкладкой «Аннотации»:

  1. Здесь напрямую выбираем команду «Таблица».
  2. Следом в окне «Вставка таблицы» указываем параметры вставки объекта «На основе связи с данными».

    Параметры вставки таблицы в Автокаде

    Параметры вставки таблицы в Автокаде

  3. При выборе любого способа экспорта из Экселя в Автокад будет открыто диалоговое окно «Диспетчер связей данных», в котором и нужно будет указать «Создать новую связь с данными Excel».
    Создать новую связь с данными Excel в Автокаде
  4. На следующем этапе вводим имя связи (желательно осмысленное, точно отражающее суть).

    Ввод имени связи с данными в Автокаде

    Ввод имени связи с данными в Автокаде

  5. Затем выбираем внешний файл (можно указать даже диапазон необходимых рабочих ячеек таблицы).
  6. При выходе из данного окна по «ОК» в окне «Диспетчера связей данных» отражается список всех связей чертежа. Если выбрать необходимую связь, соответствующая таблица будет отражена в виде миниатюры в поле ниже.

    Выбор связи данных в Автокаде

    Выбор связи данных в Автокаде

  7. Выходим из «Диспетчера связей» по кнопке «ОК».
  8. В Автокаде появляется необходимая таблица.

Обращаем внимание на то, что Автокад может предлагать ещё две полезные команды для работы с таблицами:

  • «Загрузить из источника» – позволяет обновить информацию в таблице Автокада из ранее связанной с ней и изменённой таблицы Экселя.
  • «Выгрузить в исходный файл» – обновление данных уже в файле Excel после изменения информации в таблице из AutoCAD.

Если в вашем распоряжении версия Автокада, поддерживающая OLE-технологию, то вы без труда сможете повысить уровень своей проектировочной работы, обеспечивая проведение всех расчётов во внешней Excel таблице. Дальше работа уже будет зависеть от уровня поддержки Автокадом OLE и от наличия на ПК самого Экселя, само собой.

Общим
свойством связывания и внедрения
является то, что ре¬зультаты работы
одного приложения могут быть включены
в дру¬гое. Осуществить это можно с
помощью двух довольно различных средств
OLE.

1. связывание
и внедрение

2. использование
OLE

Связывание

При
связывании файлов образуется связь
между файлом-источником и фай¬лом-приемником.
Источником может быть, например, лист
Excel, часть которо¬го или весь лист
используется в файле-приемнике WORD Пока
будет су¬ществовать связь между этими
двумя документами, любые изменения в
диа¬грамме Excel (исходные данные) будут
отражены в документе WORD (связан¬ные
данные). Рабочая таблица на самом деле
не является частью документа WORD, это
просто окно, через которое вы можете
видеть рабочую таблицу Ex¬cel. Если обновить
данные в файле-источнике, скажем в
рабочей таблице Excel, то эти данные
автоматически обновятся во всех связанных
с этой таблицей до¬кументах. Еще одним
преимуществом связывания является
экономия размера файла-приемника, т.е.
с одним файлом-приемником может быть
связано не¬сколько объектов, которые
при вставке в файл резко увеличили бы
его объем.

Для
организации связи, как правило, требуется
гораздо меньше ресурсов, чем для вставки
объектов непосредственно в файл-приемник.
Однако при использовании связанных
файлов существует риск потери инфор¬мации.
Частой причиной потери или искажения
данных является разрыв связи. Это обычно
происходит при перемещении файла-источника
в другую папку или при его переименовании.
Можно столкнуться с неприятными
ситуациями, когда после передачи файла
по компьютерной сети обнаружится, что
связи на¬рушены.

Часто
файлы-источники хранятся на сервере, и
любое количество пользовате¬лей может
установить связь с ними. Пока
документы-приемники связаны с файлами
на сервере, все хорошо. Но если вашему
коллеге в другом конце стра¬ны нужен
файл с вашего компьютера, то при пересылке
необходимо будет пе¬редать все
файлы-источники и установить новые
связи, так как местоположе¬ние папки,
содержащей файлы-источники, будет
изменено. В этом случае луч¬шим выбором
будет второе средство ОLЕ — внедрение.

Внедрение

Внедрение
больше похоже на обычное копирование
и вставку, так как поме¬щает копию
объекта из приложения-источника в файл
приложения-приемника. Главным и
существенным преимуществом внедрения
перед обычным копиро¬ванием и вставкой
является то, что вы можете редактировать
внедренный объ¬ект, оставаясь в
приложении-приемнике. При обычном
копировании и вставке вы должны были
бы переключиться в приложение-источник,
отредактировать объект и еще раз
скопировать его в файл-приемник, а при
редактировании вне¬дренного объекта
приложение-приемник обычно передает
управление прило¬жению-источнику. После
внесения каких-либо изменений управление
переда¬ется обратно приложению-приемнику,
а от приложения-источника не остается
никаких следов, кроме обновленного
объекта. Главным преимуществом вне¬дрения
перед связыванием является удобство
при перемещении файлов. Вы не ограничены
связями, ассоциирующимися с исходными
объектами. Вы можете внедрить объект в
файл, передать его своим коллегам,
проживающим в другом конце страны, и
они смогут открыть его, как и любой
другой документ, если только у них есть
в наличии соответствующее приложение-приемник.
Кроме того, располагая соответствующим
приложением-источником, они смогут
так¬же отредактировать и изменить
внедренные объекты.

Документы,
содержащие внедренные объекты, могут
становиться довольно-таки объемными,
даже большими, чем сумма размеров всех
файлов-источников, потому что, кроме
внедренных данных, в документ включается
не¬которая дополнительная информация,
связанная с процессом внедрения. При
использовании внедренных объектов
необходимо принять во внимание и то,
что изменения в оригинальном файле-источнике
никак не отражаются на фай¬ле-приемнике,
в отличие от связанных файлов.

Для
связи и внедрения объектов можно
воспользоваться следующими способами:

1. выполнить
команду «Копировать» в буфер и
воспользоваться диалоговым окном
«Специальная вставка»

2. вставить
объект с помощью команд «Объект» и
«Рисунок» из меню «Встав¬ка»

3. переместить
объект с помощью мыши непосредственно
из приложения — ис¬точника в приложение
— приёмник (возможно, с использованием
Рабочего стола в качестве промежуточного
пункта).

Окно
«Специальная вставка» примет другой
вид в нашей задаче. Охарактеризу¬ем
его.

В
верхней части окна — Источник окно «Как»
помогает выбрать тип сведений (формата)
для специальной вставки. Если нужно
получить после вставки точ¬ную копию
объекта с возможностью его последующего
редактирования, то вы¬брать формат
«Объект Документ МS Word». Если нужна
точная копия объекта, но изменения
вносится не будут, то формат Рicturе
позволит уменьшить размер файла, что
особенно важно при передаче данных.
Формат Тех1 подходит, когда нужно вставить
только основной текст, а форматирование
будет осуществлять¬ся средствами
приложения — приёмника. Описанное выше
справедливо для внедрения. Если в
диалоговом окне установить параметр
«Связать», то сохра¬нится возможность
выбора трех форматов для вставки, но
только один позво¬лит вставить объект
корректно — это формат объект Документ
МS Word.

Диалоговое
окно Связи

Можно
получить информацию о связанном объекте,
выбрав пункт Связи из ме¬ню Правка.

В
окне списка Исходный файл приведена
информация о всех связях в докумен¬те
с указанным именем файлов, а также
методов обновления для каждого фай¬ла.
Можно также установить обновление связи
по запросу вместо принятого по умолчанию
автоматического обновления. Используя
командные кнопки в пра¬вой части
диалогового окна, можно обновить связь
по запросу, открыть в при¬ложении —
источнике, изменить источник или
разорвать связь между приложе¬нием —
источником и объектом. В случае разрыва
связи копия объекта будет восстановлена
в файл — приёмник. Разорванная связь
может быть восстановле¬на только в
случае повтора полного процесса установки
связи. В дополнение к диалоговому окну
Специальная вставка, связь или внедрение
объекта в документ МS Offiсе возможны по
командам меню Вставка, отра¬жающим
названия различных типов объектов.
Связывание файла состоит из указания
полного имени файла и установки параметра
Связать с файлом, в) Обмен данными между
приложениями. При использовании метода
drag & drор рекомендуется расположить
горизонтально два окна приложения
одно¬временно. Чтобы освободить
пространство окно можно убрать ПИ и
строку со-стояния. Иногда при использовании
метода drag& drор данные перемещаются
или копируются (Сtrl), а иногда внедряются.

Использование
фрагментов для передачи данных. Данные
в виде текста или диапазонов ячеек можно
хранить в виде фрагментов на Рабочем
столе. Фраг¬менты имеют свои атрибуты,
которые могут быть изменены с помощью
коман¬ды Свойства. Фрагменты хранятся
в папке WindowsРабочий стол.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

На чтение 9 мин Просмотров 27к. Опубликовано 09.11.2017

MS Excel давно стал стандартом для работы с электронными таблицами. В статье рассматриваются способы программной выгрузки и загрузки из 1С в файлы Excel.

Существует несколько способов программной работы с файлами Excel из 1С. Каждый из них имеет свои преимущества и недостатки.

Содержание

  1. Обмен через табличный документ
  2. Обмен через OLE
  3. Использование COMSafeArray
  4. Обмен через ADO
  5. Выгрузка без программирования

Обмен через табличный документ

Данный способ простой. Его суть заключается в том, что объект ТабличныйДокумент имеет методы:

  • Записать(<ИмяФайла>, <ТипФайлаТаблицы>) для выгрузки данных в файл;
  • Прочитать(<ИмяФайла>, <СпособЧтенияЗначений>) для загрузки данных из файла.

Внимание!

Метод Записать() доступен как на клиенте, так и на сервере. Метод Прочитать() доступен только на стороне сервера. Необходимо помнить об этом
при планировании клиент-серверного взаимодействия.


Рассмотрим пример сохранения табличного документа в файл. Необходимо любым способом создать и заполнить объект ТабличныйДокумент, а выгрузка в файл осуществляется всего лишь одной строкой:

ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX);

Здесь ТабДок — сформированный табличный документ, ПутьКФайлу — имя файла для выгрузки, ТипФайлаТабличногоДокумента.XLSX — формат создаваемого файла. Поддерживаются следующие форматы Excel:

  • XLS95 — формат Excel 95;
  • XLS97 — формат Excel 97;
  • XLSX — формат Excel 2007.

Загрузка из файла осуществляется также достаточно просто:

ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПутьКФайлу, СпособЧтенияЗначенийТабличногоДокумента.Значение);

Здесь ПутьКФайлу — путь к загружаемому файлу Excel. СпособЧтенияЗначенийТабличногоДокумента.Значение определяет, каким образом нужно интерпретировать данные, считываемые из исходного документа. Доступны варианты:

  • Значение;
  • Текст.

Обмен через OLE

Обмен через технологию OLE automation, пожалуй, самый распространенный вариант программной работы с файлами Excel. Он позволяет использовать весь функционал, предоставляемый Excel, но отличается медленной скоростью работы по сравнению с другими способами. Для обмена через OLE требуется установка MS Excel:

  • На компьютере конечного пользователя, если обмен происходит на стороне клиента;
  • На компьютере сервера 1С:Предприятие, если обмен происходит на стороне сервера.

Пример выгрузки:

// Создание COM-объекта
Эксель = Новый COMОбъект(«Excel.Application»);
// Отключение вывода предупреждений и вопросов
Эксель.DisplayAlerts = Ложь;
// Создание новой книги
Книга = Эксель.WorkBooks.Add();
// Позиционирование на первом листе
Лист = Книга.Worksheets(1);

// Запись значения в ячейку
Лист.Cells(НомерСтроки, НомерКолонки).Value = ЗначениеЯчейки;

// Сохранение файла
Книга.SaveAs(ИмяФайла);

// Закрытие Эксель и освобождение памяти
Эксель.Quit();
Эксель = 0;

Примеры чтения:

// —— ВАРИАНТ 1 ——

// Создание COM-объекта
Эксель = Новый COMОбъект(«Excel.Application»);
// Открытие книги
Книга = Эксель.Workbooks.Open(ПутьКФайлу);
// Позиционирование на нужном листе
Лист = Книга.Worksheets(1);

// Чтение значения ячейки, обычно здесь располагается цикл обхода ячеек
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;

// Закрытие книги
Книга.Close(0);

// Закрытие Эксель и освобождение памяти
Эксель.Quit();
Эксель = 0;

// —— ВАРИАНТ 2 ——

// Открытие книги
Книга = ПолучитьCOMОбъект(ПутьКФайлу);
// Позиционирование на нужном листе
Лист = Книга.Worksheets(1);

// Чтение значения ячейки, обычно здесь располагается цикл обхода ячеек
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;

// Закрытие книги
Книга.Application.Quit();

Для обхода всех заполненных строк листа Excel можно использовать следующие приемы:

// —— ВАРИАНТ 1 ——
КоличествоСтрок = Лист.Cells(1, 1).SpecialCells(11).Row;
Для НомерСтроки = 1 По КоличествоСтрок Цикл
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;
КонецЦикла;

// —— ВАРИАНТ 2 ——
НомерСтроки = 0;
Пока Истина Цикл
НомерСтроки = НомерСтроки + 1;
ЗначениеЯчейки = Лист.Cells(НомерСтроки, НомерКолонки).Value;
Если НЕ ЗначениеЗаполнено(ЗначениеЯчейки) Тогда
Прервать;
КонецЕсли;
КонецЦикла;

Вместо последовательного обхода всех строк листа можно выгрузить все данные в массив и работать с ним. Такой подход будет быстрее при чтении большого объема данных:

ВсегоКолонок = Лист.Cells(1, 1).SpecialCells(11).Column;
ВсегоСтрок = Лист.Cells(1, 1).SpecialCells(11).Row;

Область = Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок));
Данные = Область.Value.Выгрузить();

В таблице ниже приведены наиболее востребованные свойства и методы для работы с Excel через OLE:

Действие Код Комментарий
Работа с приложением
Установка видимости окна приложения Эксель.Visible = Ложь;
Установка режима вывода предупреждений (выводить/не выводить) Эксель.DisplayAlerts = Ложь;
Закрытие приложения Эксель.Quit();
Работа с книгой
Создание новой книги Книга = Эксель.WorkBooks.Add();
Открытие существующей книги Книга = Эксель.WorkBooks.Open(ИмяФайла);
Сохранение книги Книга.SaveAs(ИмяФайла);
Закрытие книги Книга.Close(0);
Работа с листом
Установка текущего листа Лист = Книга.WorkSheets(НомерЛиста);
Установка имени Лист.Name = Имя;
Установка защиты Лист.Protect();
Снятие защиты Лист.UnProtect();
Установка ориентации страницы Лист.PageSetup.Orientation = 2; 1 — книжная, 2 — альбомная
Установка левой границы Лист.PageSetup.LeftMargin = Эксель.CentimetersToPoints(Сантиметры);
Установка верхней границы Лист.PageSetup.TopMargin = Эксель.CentimetersToPoints(Сантиметры);
Установка правой границы Лист.PageSetup.RightMargin = Эксель.CentimetersToPoints(Сантиметры);
Установка нижней границы Лист.PageSetup.BottomMargin = Эксель.CentimetersToPoints(Сантиметры);
Работа со строками, колонками, ячейками
Установка ширины колонки Лист.Columns(НомерКолонки).ColumnWidth = Ширина;
Удаление строки Лист.Rows(НомерСтроки).Delete();
Удаление колонки Лист.Columns(НомерКолонки).Delete();
Удаление ячейки Лист.Cells(НомерСтроки, НомерКолонки).Delete();
Установка значения Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение;
Объединение ячеек Лист.Range(Лист.Cells(НомерСтроки, НомерКолонки), Лист.Cells(НомерСтроки1, НомерКолонки1)).Merge();
Установка шрифта Лист.Cells(НомерСтроки, НомерКолонки).Font.Name = ИмяШрифта;
Установка размера шрифта Лист.Cells(НомерСтроки, НомерКолонки).Font.Size = РазмерШрифта;
Установка жирного шрифта Лист.Cells(НомерСтроки, НомерКолонки).Font.Bold = 1; 1 — жирный шрифт, 0 — нормальный
Установка курсива Лист.Cells(НомерСтроки, НомерКолонки).Font.Italic = 1; 1 — курсив, 0 — нормальный
Установка подчеркнутого шрифта Лист.Cells(НомерСтроки, НомерКолонки).Font.Underline = 2; 2 — подчеркнутый, 1 — нет

Для того, чтобы узнать какое свойство нужно менять или какой метод вызвать можно воспользоваться макросами Excel. Если записать макрос с требуемыми действиями, то после можно посмотреть программный код на VBA записанного макроса.

Использование COMSafeArray

При выгрузке больших объемов данных из 1С в Excel для ускорения можно использовать объект COMSafeArray. Согласно определению из синтакс-помощника, COMSafeArray — объектная оболочка над многомерным массивом SafeArray из COM. Позволяет создавать и использовать SafeArray для обмена данными между COM-объектами. Проще говоря, это массив значений, который можно использовать для обмена между приложениями по технологии OLE.

// Создание COMSafeArray
МассивКом = Новый COMSafeArray(«VT_Variant», ВсегоКолонок, ВсегоСтрок);
// Заполнение COMSafeArray
Для Стр = 0 По ВсегоСтрок1 Цикл
Для Кол = 0 По ВсегоКолонок1 Цикл
МассивКом.SetValue(Кол, Стр, Значение);
КонецЦикла;
КонецЦикла;
// Присвоение области листа Excel значений из COMSafeArray
Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).Value = МассивКом;

Обмен через ADO

Файл Excel при обмене через ADO представляет собой базу данных, к которой можно обращаться при помощи SQL-запросов. Установка MS Excel не требуется, но обязательно наличие драйвера ODBC, при помощи которого будет осуществляться доступ. Используемый драйвер ODBC определяется при указании строки соединения к файлу. Обычно требуемый драйвер уже установлен на компьютере.

Обмен через ADO заметно быстрее обмена через OLE, но при выгрузке нет возможности использовать функционал Excel для оформления ячеек, разметки страниц, задания формул и т.д.

Пример выгрузки:

// Создание COM-объекта для соединения
Соединение = Новый COMОбъект(«ADODB.Connection»);

// Установка строки соединения
Соединение.ConnectionString = «
|Provider=Microsoft.ACE.OLEDB.12.0;
|Data Source=»+ИмяФайла+«;
|Extended Properties=»»Excel 12.0 XML;HDR=YES»»;»;
Соединение.Open(); // Открытие соединения

// Создание COM-объекта для команды
Команда = Новый COMОбъект(«ADODB.Command»);
Команда.ActiveConnection = Соединение;

// Присвоение текста команды для создания таблицы
Команда.CommandText = «CREATE TABLE [Лист1] (Колонка1 char(255), Колонка2 date, Колонка3 int, Колонка4 float)»;
Команда.Execute(); // Выполнение команды

// Присвоение текста команды для добавления строки таблицы
Команда.CommandText = «INSERT INTO [Лист1] (Колонка1, Колонка2, Колонка3, Колонка4) values (‘абвгдеё’, ‘8/11/2017’, ‘12345’, ‘12345,6789’)»;
Команда.Execute(); // Выполнение команды

// Удаление команды и закрытие соединения
Команда = Неопределено;
Соединение.Close();
Соединение = Неопределено;

Для создания нового листа и формирования его структуры можно воспользоваться объектами ADOX.Catalog и ADOX.Table. В этом случае код примет вид:

// Создание COM-объекта для работы с книгой
Книга = Новый COMОбъект(«ADOX.Catalog»);
Книга.ActiveConnection = Соединение;

// Создание COM-объекта для работы со структурой данных на листе
Таблица = Новый COMОбъект(«ADOX.Table»);
Таблица.Name = «Лист1»;
Таблица.Columns.Append(«Колонка1», 202);
Таблица.Columns.Append(«Колонка2», 7);
Таблица.Columns.Append(«Колонка3», 5);
Таблица.Columns.Append(«Колонка4», 5);

// Создание в книге листа с описанной структурой
Книга.Tables.Append(Таблица);
Таблица = Неопределено;
Книга = Неопределено;

В приведенном примере в методе

Таблица.Columns.Append(«Колонка1», 202);

во втором параметре указывается тип колонки. Параметр необязательный, вот некоторые значения типа колонки:

  • 5 — adDouble;
  • 6 — adCurrency;
  • 7 — adDate;
  • 11 — adBoolean;
  • 202 — adVarWChar;
  • 203 — adLongVarWChar.

Пример чтения:

// Создание COM-объекта для соединения
Соединение = Новый COMОбъект(«ADODB.Connection»);

// Установка строки соединения
Соединение.ConnectionString = «
|Provider=Microsoft.ACE.OLEDB.12.0;
|Data Source=»+ИмяФайла+«;
|Extended Properties=»»Excel 12.0 XML;HDR=YES»»;»;
Соединение.Open(); // Открытие соединения

// Создание COM-объекта для получения выборки
Выборка = Новый COMОбъект(«ADODB.Recordset»);
ТекстЗапроса = «SELECT * FROM [Лист1$]»;

// Выполнение запроса
Выборка.Open(ТекстЗапроса, Соединение);

// Обход результата выборки
Пока НЕ Выборка.EOF() Цикл
ЗначениеКолонки1 = Выборка.Fields.Item(«Колонка1»).Value; // Обращение по имени колонки
ЗначениеКолонки2 = Выборка.Fields.Item(0).Value; // Обращение по индексу колонки
Выборка.MoveNext();
КонецЦикла;

Выборка.Close();
Выборка = Неопределено;
Соединение.Close();
Соединение = Неопределено;

В строке соединения параметр HDR определяет как будет восприниматься первая строка на листе. Возможны варианты:

  • YES — первая строка воспринимается как названия колонок. К значениям можно обращаться по имени и по индексу колонки.
  • NO — первая строка воспринимается как данные. К значениям можно обращаться только по индексу колонки.

В приведенных примерах рассмотрено лишь несколько объектов ADO. Объектная модель ADO состоит из следующих объектов:

  • Connection;
  • Command;
  • Recordset;
  • Record;
  • Fields;
  • Stream;
  • Errors;
  • Parameters;
  • Properties.

Выгрузка без программирования

Для сохранения данных из 1С в Excel не всегда целесообразно прибегать к программированию. Если в режиме Предприятия пользователь может отобразить требуемые для выгрузки данные, то, их возможно сохранить в Excel без программирования.

Для сохранения табличного документа (например, результата отчета) можно вызвать команду Сохранить или Сохранить как… главного меню.

Сохранение табличного документа 1С

В открывшемся окне требуется выбрать каталог, имя и формат сохраняемого файла.

Для сохранения данных динамических списков (например, списка номенклатуры) необходимо:

  1. Вывести данные в табличный документ при помощи команды Еще ⇒ Вывести список…;
  2. Сохранить табличный документ в требуемый формат.

Сохранение динамического списка

Понравилась статья? Поделить с друзьями:
  • Таблица word порядковые номера
  • Таблица microsoft excel элементы таблицы
  • Таблица microsoft excel онлайн
  • Таблица word перескакивает на следующую страницу
  • Таблица word образец заполнения