![]() |
|
|
![]()
|
|
| StamSvam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 8.7.2012 Репутация: нет Всего: нет |
Здравствуйте. Вы мне уже очень помогли. Надеюсь, не оставите меня и в этот раз.
Моя задача записать в файл строки. В документе Word содержится что-то вроде таблицы. Шаблон допуска для студента. Мне необходимо в эту таблицу записать в определенные ячейки данные из программы. Конкретнее - строки. Как это реализовать я ума не приложу. Прикрепил файл с шаблоном. Помогите, пожалуйста. Присоединённый файл ( Кол-во скачиваний: 11 )
Temp.doc 63,00 Kb |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Я в шаблоне в нужных ячейках создавал закладки (bookmarks) и потом просто искал нужную закладку по имени и заменял её на текст.
Завтра поделюсь кодом -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| StamSvam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 8.7.2012 Репутация: нет Всего: нет |
Спасибо большое за идею! Попробую сам, но все равно жду кода
|
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Я предлагаю сформировать нужный файл средствами билдера и офиса без использования шаблонов. Пример создания таблицы:
А вообще какая задача стоит? Распечатать таблицу или сохранить в файл? Если распечатать, то можно на канве TPrinter создать нужную таблицу и сразу вывести на печать. -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| StamSvam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 8.7.2012 Репутация: нет Всего: нет |
Usper, в том то и дело, что создать этот файл с нуля - лишняя морока, имхо. Если еще и накосячу где-нибудь, то мне потом выскажут все. Эти шаблоны мне выдал "заказчик".
А что касается дальнейшей судьбы файла, то его надо распечатать. P.S. Честно говоря, я в непонятках как создать такую табличку даже в самом Ворде. Слишком мудреная она какая-то. Это сообщение отредактировал(а) StamSvam - 10.7.2012, 10:40 |
|||
|
||||
| StamSvam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 8.7.2012 Репутация: нет Всего: нет |
Кстати, если это что-то изменит, то файл изначально есть в формате *.RTF . Но, к стыду признаться я видел такой тип впервые, сохранил его как *.doc, т.к. о работе с таблицами в Ворде я хоть что-то слышал.
|
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Эээ, в чём морока? В моём примере выше я создал файл в ворде и показал как надо работать с таблицами. Нужно только туда запихать таблицу по шаблону. А накосячить можно и с готовым шаблоном.
-------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| StamSvam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 8.7.2012 Репутация: нет Всего: нет |
Поглядите файл, прикрепленный к теме. И в свойствах таблицы пройдитесь по строкам (Следующая строка/Предыдущая строка). Первые строки куда не шло. А дальше начинается маразм. Я вот просто не пойму, как она так сделана эта таблица.
Это сообщение отредактировал(а) StamSvam - 10.7.2012, 11:04 |
|||
|
||||
| deniska |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
ну на самом деле не так уж и много строк в таблице. можно и тупым перебором определить куда Ворд запишет строку по той или иной "i,j"
наверное и рисовать таблицу самому тоже нет смысла. Открыть "рыбу" и ее редактировать Это сообщение отредактировал(а) deniska - 10.7.2012, 11:44 |
|||
|
||||
| StamSvam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 8.7.2012 Репутация: нет Всего: нет |
Такая проблема еще. Открываю файл для работы с ним:
#define OPG OlePropertyGet #define OPS OlePropertySet #define OF OleFunction void exportToWord() { Variant vApp, vDoc, vDocs, vParagraphs, vParagraph, vRange, vTables, vTable; AnsiString S; int paragraphItem; try { vApp = CreateOleObject("Word.Application"); } catch(...) { Application->MessageBoxA("Не могу запустить сервер MS Word. Отчёт не может быть экспортирован.","Ошибка",MB_ICONERROR); return; } vDocs = vApp.OPG("Documents"); vDocs.OleProcedure("Open","Temp.doc"); ...................... } Вот на строчке с процедурой он выводит такую ошибку: Project *.exe raised exeption class EOleSysError with message 'Ошибка'. Process stoped.[U][/U] и перекидывает на Header "sysvari.h" на строчку OleProcedure(name, static_cast<TAutoArgsBase*>(&args)); Что ему не нравится? Пробовал перевести имя файла функцией StringToOleStr(), но толку никакого. Та же ошибка. |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Не такая уж она страшная эта таблица, просто представляет собой кучу сгруппированных ячеек. Кстати, нужна ли эта куча? Очевидно, что половина ячеек в ней никогда не будут использоваться. Задайте этот вопрос "заказчику".
А проблема с открытием файла скорее всего в том, что ворд его не может найти в пути по умолчанию. Задайте нужный путь (например так: vDocs.OleProcedure("Open","d:\\Temp.doc");) -------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| StamSvam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 8.7.2012 Репутация: нет Всего: нет |
Тогда возникает еще одна проблема. На другом компьютере ведь заново придется прописывать полный путь к файлу. неизвестно же где пользователь будет хранить файлы. А это не дело, юзеры обычно далеки даже от элементарного указания полного пути к файлу. Да и ленивы для этого..
Это сообщение отредактировал(а) StamSvam - 10.7.2012, 12:55 |
|||
|
||||
| Usper |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 13.4.2007 Репутация: 15 Всего: 15 |
Собственно поэтому я и предложил генерировать файл на месте. Иначе будет нужно распространять шаблон вместе с исполняемым файлом.
-------------------- На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник. |
|||
|
||||
| StamSvam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 8.7.2012 Репутация: нет Всего: нет |
Так. Ну с этим понятно. Надо будет оставить на крайний случай. А про закладки в вставку на их места текста кто что может рассказать? Выручите, плиз. Хоть ссылочкой какой.
|
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Вот, как и обещал. Последовательность вызовов. Только не забудь проверять все значения на валидность.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |