Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Работа MS Word в Builder


Автор: NightXXX 27.5.2007, 16:42
1.Как вызвать Word и что бы там открылся какой то документ который нам нужно 
2.Подскажите как работать c Word документами из программы, как его редоктировать?
3.Можно ли узнать в *.doc документе количесво старниц, из моей программы!
 smile  smile 

Автор: sashasan 27.5.2007, 19:06
Цитата(NightXXX @ 27.5.2007,  16:42)
1.Как вызвать Word и что бы там открылся какой то документ который нам нужно 
2.Подскажите как работать c Word документами из программы, как его редоктировать?
3.Можно ли узнать в *.doc документе количесво старниц, из моей программы!
 smile  smile

вот тут очень подробное описание как это делать - http://wladm.narod.ru/

Автор: NightXXX 30.5.2007, 01:32
Хочу открыть Word, но не в форме илдера а обычно как открывается файл, и вообще как из программы открыть документ любой посредствам установленных программ.
Возможно ли это вообще или нет?

Автор: SenkraD 30.5.2007, 09:22
Цитата(NightXXX @  30.5.2007,  01:32 Найти цитируемый пост)
ообще как из программы открыть документ любой посредствам установленных программ.
Возможно ли это вообще или нет?

Да. Почитай о ShellExecute, WinExec, spawn, CreateProcess

Автор: NightXXX 30.5.2007, 23:19
А что никто не разу не пробывал так делать?
жалко  
чего то посмотрел и ничего smile 

Автор: SenkraD 31.5.2007, 08:57
Цитата(NightXXX @  30.5.2007,  23:19 Найти цитируемый пост)
А что никто не разу не пробывал так делать?
Что делать? С Word  работать или запусать программы и открывать файлы?

Автор: NightXXX 31.5.2007, 19:20
открыть Word а в ней открыть заданный файл!

Автор: SenkraD 31.5.2007, 19:29
Вот так тупо открываем документ Word:
Код

ShellExecute(0,"open","D:\\Test.doc","","",SW_SHOW);


А вот пример работы с Word через Builder с одной книги:ъ
Код

#include <vcl.h>
#include <ComObj.hpp>
#include <utilcls.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Variant  vWordApp,    // Приложение
         vWordDocs,    // Набор документов
         vWordDoc,       // Документ
         vDocParagraphs,
         vParagraph,
         vVarRange,
         vVarCell,
         vVarTable;

bool fStart;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------


//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 if(!fStart)
 {
  try
  {
   vWordApp=CreateOleObject("Word.Application");
   fStart=true;
  }
  catch(...)
  {
   MessageBox(0, "Ошибка при открытии сервера Word",
                 "Ошибка", MB_OK);
  return;
  }
 }
 vWordApp.OlePropertySet("Visible",true);
 vWordDocs=vWordApp.OlePropertyGet("Documents");
 vWordDocs.OleProcedure("Add");
 vWordDocs=vWordDocs.OleFunction("Item",1);
 vWordDocs.OleProcedure("Activate");
 vDocParagraphs=vWordDocs.OlePropertyGet("Paragraphs");
//
 AnsiString str="ПРИВЕТ";
 vDocParagraphs.OleProcedure("Add");
 vParagraph=vDocParagraphs.OleFunction("Item",1);
 vParagraph.OlePropertyGet("Range").
               OlePropertySet("Text",str.c_str());
 vParagraph.OlePropertySet("Alignment",1);
//
 str="Я умею работать в Word";
 vDocParagraphs.OleProcedure("Add");
 vParagraph=vDocParagraphs.OleFunction("Item",2);
 vParagraph.OlePropertyGet("Range").
               OlePropertySet("Text",str.c_str());
 vParagraph.OlePropertySet("Alignment",0); //по левому краю
//
  AnsiString vAsCurDir=GetCurrentDir();
 AnsiString vAsCurDir1=vAsCurDir+"\\hello.doc";
 vWordDocs.OleProcedure("SaveAs",vAsCurDir1.c_str());
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if (fStart)
 {
  try
  {
   vWordApp.OlePropertySet("DisplayAlerts",false);
   vWordApp.OleProcedure("Quit");
  }
  catch(...)
  {
  MessageBox(0, "Ошибка при открытии сервера Word",
                 "Ошибка", MB_OK);
  }

 }
}

Автор: NightXXX 31.5.2007, 19:35
Спаисбо, все опробуем!)) 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)