|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.09.2009, 13:30 | #1 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
О вставке ранга EXCEL в документ WORD
В связи с вопросами по SUBJ на нескольких форумах решил ответить
отдельным топиком. 1) Вставка осуществляется с помощью OLE Вставка->Объект->Создание из файла->Обзор ... Для указания имени ранга ячеек используйте кнопку "Элемент" 2) Можно сразу поместить в документ поле LINK Например, { LINK Excel.Sheet.8 "E:\\123456789.xls" "TBL1" \a \f 0 \p } Создаст связь с рангом TBL1 файла E:\123456789.xls с автоматическим обновлением. Ранг вставляется как рисунок, но может быть откорректирован в родительском приложении по клику на объект. 3)Можно скопировать Range в Excel, перейти в Word и выбрать Правка->Специальная вставка Вставить как "Лист Microsoft Office Excel (объект)" - будет вставлено поле EMBED и образована связь с XLS файлом или вставить как "Формат HTML" - ранг будет конвертирован в таблицу Word и вставлен в документ Собственно, можно и просто Ctrl-C Ctrl-V При внедрении данных с помощью OLE нужно не забывать, что если вы перенесёте файл EXCEL в другой каталог или переименуете его связь будет разрушена. 4) Можно воспользоваться методом InsertFile Код:
5) Можно воспользоваться полем INCLUDETEXT { INCLUDETEXT "E:\\123456789.xls" R5C2:R7C4 \c MSBiff } или { INCLUDETEXT "E:\\123456789.xls" B5:D7 \c MSBiff } со стандартным конвертером. Так же можно воспользоваться старым (не поддерживаемым больше MS) конвертером Excel32.cnv, разработанным для Excel 2.0-97. Конвертер можно найти, например, по адресу http://www.gmayor.com/Zips/Excel32.zip Код поля в этом случаее будет иметь вид: { INCLUDETEXT "E:\\123456789.xls" R5C2:R7C4 \c excel32 } К сожалению, с именованными рангами эти конвертеры у меня работать отказались. Но если используется адрес ячеек для MSBIFF всё срабатывает без проблем. 6) Ну и на последок. Можно написать макрос который просканирует коллекцию FIELDS в вашем документе в поисках скажем полей вида { ADDIN XLSRANGE имя_ранга}. Получив имя ранга нужно получить его адрес и затем вставить этот ранг в WORD за полем. В поле ADDIN вы можете установить любое удобное ваш содержание. В отличие от использования OLE использование INCLUDETEXT не даёт возможности править исходный файл в целевом документе. Кроме того, если используется конвертация формата (INCLUDETEXT,insertfile) вы будете получать дополнительный запрос от Word на подтверждение конвертации формата файла. Однако, при использовании непосредственной вставки ранга по insertfile этот запрос можно задавить. Код:
Последний раз редактировалось Aent; 27.09.2009 в 15:42. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не открывается документ Word | komar73 | Microsoft Office Word | 3 | 30.05.2009 22:17 |
Excel: Вставить картинку или Word документ | Mort222 | Microsoft Office Excel | 6 | 19.02.2009 12:47 |
как вставить диаграмму Excel в документ Word | JOHNNY BASIC | Общие вопросы Delphi | 0 | 29.09.2008 20:15 |
Интеграция таблиц excel в документ word | SergeyPaterson | Microsoft Office Excel | 1 | 29.05.2008 23:39 |
Word и документ Dos? | Prowler | Общие вопросы Delphi | 1 | 02.03.2007 15:05 |