Данный материал является продолжением статьи Вставка изображения в документ Word. В связи с некоторыми особенностями данной разработки хотелось бы начать с описания самых крупных трудностей, повлиявших на конечный результат.
Сложность заключается в том, что четких границ страницы в документе Excel не существует. Если мы не задаем область печати, то она будет определяться по содержимому. Если количество используемых ячеек настолько велико, что не умещается на странице выбранного формата, то количество страниц автоматически увеличивается или, если документ настроен иначе, то лист начинает менять масштаб. В такой ситуации координаты для размещения изображения не помогут нам в точном определении его положения на странице, а такие свойства страницы как левая граница и верхняя граница (left, top) отсутствуют в принципе.
Если указать область печати, то работать со страницей становится проще. Однако же, если область печати не совпадает по пропорциям с выбранным форматом страницы, то изображение, помещенное в нижний правый угол области печати, может оказаться, например, посередине самой страницы.
В документе Word подложкой фактически является содержимое колонтитула. Расположить изображение или WordArt в колонтитуле по координатам было также легко, как и на основном листе. В документе Excel колонтитулы совсем другие. Вставить графический объект в колонтитул можно только с помощью действий, которые можно найти на вкладке «Конструктор» панели инструментов, что затрудняет дальнейшее программное форматирование изображения.
Так как на панели инструментов «Конструктор» нет возможности вставить объект WordArt, то в разработке данной возможности также не будет.
В документе Excel есть шесть слотов для заполнения колонтитула, что не позволяет расположить вставляемое изображение в центре документа. Вследствие чего приходилось «двигать» изображение из верхнего колонтитула с помощью вставок новых строк. Потому, в документах с разным форматом, центр может сместиться.
Будем использовать справочник, описанный в материале Вставка изображения в документ Word.
Список изменений справочника:
Почти весь имеющийся функционал карточки доступен при вставке изображения в документ Excel. Исключениями являются:
При вставке изображения в качестве подложки ограничений больше. Недоступными становятся реквизиты:
Примеры использования:
Как уже говорилось, вставлять объект «WordArt» в подложку в документе «Excel» невозможно. Поэтому нам доступна только обычная вставка. Но и в обычном режиме есть свои ограничения.
Недоступен для изменения реквизит «Размерность текста». Данный реквизит использовался в документах типа «Word» для того, чтобы определить, как мы будем задавать размер текста. Размером его контейнера, или шрифтом? В Excel, при программной вставке объекта «WordArt», даже если мы зададим гигантский размер контейнера, но не зададим шрифт, то текста мы так и не увидим. Поэтому доступен только шрифт.
Примеры использования:
Функция «DIO_InsertGraphicObjectToExcelDocument» работает аналогично функции «DIO_InsertGraphicObjectToWordDocument». Чтобы функции и справочник нормально работали, должны быть заполнены константы «DIO_WordDocumentExample» и «DIO_ExcelDocumentExample». В этих константах хранятся ИД документов Word и Excel соответственно. Эти документы могут иметь любой формат, но лучше оформить их так, чтобы при нажатии кнопки «Предпросмотр» справочника «Графические объекты для вставки в документ» можно было бы наглядно увидеть результат вставки.
Существует определенный баг при работе с файлами, имеющих расширение «xlsx», если на клиентской машине установлен 2013 офис. При вставке графического объекта, сбрасываются настроенные области печати, вследствие чего графический объект некорректно располагается при выравнивании по границам документа. При наличии такого бага лучше использовать отступ в сантиметрах.
Разработка выполнена в системе DIRECTUM 5.0.
В состав разработки входят:
Полная разработка, позволяющая вставлять графические объекты в документы Word и Excel:
Авторизуйтесь, чтобы написать комментарий