Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание таблицы Word, Excel из приложения, Создание таблицы Word, Excel 
:(
    Опции темы
zav74
Дата 16.1.2007, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Необходимо создать шаблон таблицы Word, Excel, а затем заполнить ее данными из приложения. Очень желательно, чтобы и шаблон и заполнение происходило именно из приложения.
PM MAIL   Вверх
_hunter
Дата 16.1.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 2
Всего: 98



ну так проблема в чем? -- на форуме такие темы не раз поднимались -- поиском воспользуйся (и внизу страницы ссылки посмотри)
или тебе готовый код написать нужно -- тогда тебе в разделы рабоца/центр помощи

P.S.
ты разделом ошибся... это в COM/OLE


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
zav74
Дата 16.1.2007, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



будем искать... smile 
PM MAIL   Вверх
Kostt
Дата 16.1.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 8.1.2006
Где: Томск

Репутация: нет
Всего: 3



разделом может и не совсем ошибся - в разных средах работа с COM-объектами выглядит по-разному. У меня приложение есть, которое делает именно выгрузку данных в шаблон, седня-завтра код кину.
PM MAIL   Вверх
zav74
Дата 16.1.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



 smile 
PM MAIL   Вверх
Kostt
Дата 16.1.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 8.1.2006
Где: Томск

Репутация: нет
Всего: 3



тьфу, это общие вопросы smile думал что в C++\MFC\WTL пишу

zav, ты в студии работаешь?

Это сообщение отредактировал(а) Kostt - 16.1.2007, 12:36
PM MAIL   Вверх
zav74
Дата 16.1.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



не понял вопроса: студия-это что?
PM MAIL   Вверх
_hunter
Дата 16.1.2007, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 2
Всего: 98



это microsoft visual studio.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
zav74
Дата 16.1.2007, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Ааааа... Да в студии
PM MAIL   Вверх
Kostt
Дата 17.1.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 8.1.2006
Где: Томск

Репутация: нет
Всего: 3



Обещаный код:
Для начала, нужно импортировать содержимое соответствующих библиотек Office. Для этого, например в stdafx.h пишем следующее (пути к dll-кам меняем на свои!)
Код

#import "libid:AC0714F2-3D04-11D1-AE7D-00A0C90F26F4" version("1.0") lcid("0")  raw_interfaces_only named_guids

#import "c:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL" 
using namespace Office;

#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "c:\Program Files\Microsoft Office\OFFICE11\EXCEL.exe" //Я использую именно 2003 офис!

using namespace Excel;


Теперь в файлах, куда подключен загаловочник с этим кодом доступны COM-объекты Excel и Office
Я запускаю новую копию экселя так (есть и др. способы, можно подрубится к запущенному...)
Код

    try
               {
                _ApplicationPtr pXl( "Excel.Application" );//COM-указатель на новый экземпляр Excel
        if( m_pExcelApp = pXl )
            m_bExcelIsRunning = TRUE;
    }
    catch( _com_error &e )
    {
        return FALSE;
    }


Теперь можно использовать полученный указатель для вызова методов, напр:

Код

m_pExcelApp->put_Visible( 0, TRUE ); //Сделали Excel видимым
 
Код

_WorkbookPtr m_WorkbookPtr = m_pApp->Workbooks->Open( _bstr_t( "C:\Template.xlt" ) );//Открыли шаблон, получили указатель на новую книгу        
_WorksheetPtr m_WorksheetPtr = m_WorkbookPtr->ActiveSheet;// Взяли указатель на 1 лист новой книги
           

Код

m_WorksheetPtr->GetRange(_bstr_t("A1:A1"))->Value2 = _bstr_t("привет!");//Пишем в ячейку


В-общем, разберешся. В 2005 студии можно посмотреть методы и свойства COM-объектов, если работаешь в других эти методы можно посмотреть в Help'e VBA для офисных приложений



PM MAIL   Вверх
zav74
Дата 17.1.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Спасибо! Попробую.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.