как открывать файлы Word из программы
Модератор: Модераторы
-
yuriy kuznetsov
- новенький
- Сообщения: 12
- Зарегистрирован: 05.11.2010 05:43:06
как открывать файлы Word из программы
Здравствуйте уважаемые профессионалы. Я самоучка. Создаю свою первую программу для школы. Это что-то вроде электронного учебника. Порядка ста файлов с учебным материалом для этой программы набраны в Word. Файлы не большие, по одной страничке каждый, но по структуре сложные: текст, таблицы, рисунки, автофигуры. Создавать это всё по новой внутри программы большой труд, да и зачем, всё оно уже создано в Word. Вопрос такой: можно ли присоединить эти файлы к программе и открывать из неё при необходимости для просмотра и печати.
Немного знаком с Delphi. Там эту проблему можно решить с помощью компонента OleContainer. Но возможно ли это реализовать в Lazarus, с этим разобраться самостоятельно не удалось. Заранее спасибо.
Немного знаком с Delphi. Там эту проблему можно решить с помощью компонента OleContainer. Но возможно ли это реализовать в Lazarus, с этим разобраться самостоятельно не удалось. Заранее спасибо.
-
yuriy kuznetsov
- новенький
- Сообщения: 12
- Зарегистрирован: 05.11.2010 05:43:06
А можно по-подробнее об этом? Как конвертировать? Как присоединить к программе? Как открывать в программе? Может быть пример какой. Сами понимаете я только начинаю в этом разбираться.
yuriy kuznetsov
Попробуйте, для начала, из Word'а "Сохранить как..." в формате HTML и посмотреть, как будет выглядеть такой файл.
Попробуйте, для начала, из Word'а "Сохранить как..." в формате HTML и посмотреть, как будет выглядеть такой файл.
-
sobee
- новенький
- Сообщения: 84
- Зарегистрирован: 04.02.2008 23:23:46
- Откуда: Снежинск, Челябинская обл.
Nik писал(а):Поддержки OLE в Lazarus пока (?) нет.
Посмотри http://sergej-zsv.narod.ru/Bin/OleFree/olefree.html. Может поможет.
-
yuriy kuznetsov
- новенький
- Сообщения: 12
- Зарегистрирован: 05.11.2010 05:43:06
to sobee
Очень близко к тому, что мне нужно. Но моих нынешних знаний не достаточно для того, что бы модифицировать это для решения своих задач.
to Nik & Vadim
Думаю, что смогу конвертировать документы в HTML. А как их потом показывать в программе? Хотелось бы сначала попробовать на одном файле, а потом уже браться за остальные.
Очень близко к тому, что мне нужно. Но моих нынешних знаний не достаточно для того, что бы модифицировать это для решения своих задач.
to Nik & Vadim
Думаю, что смогу конвертировать документы в HTML. А как их потом показывать в программе? Хотелось бы сначала попробовать на одном файле, а потом уже браться за остальные.
- Nik
- энтузиаст
- Сообщения: 573
- Зарегистрирован: 03.02.2006 23:08:09
- Откуда: Киров
- Контактная информация:
Если требуется кросс-платформенный вариант, то для открытия HTML можно попробовать вот эти компоненты: http://code.google.com/p/thtmlviewer/ (поддерживаются не все возможности HTML/CSS, но для экспортированных из Word документов, возможно, хватит).
Если достаточно Windows, то хватит WebBrowser на основе Internet Explorer ActiveX.
Если достаточно Windows, то хватит WebBrowser на основе Internet Explorer ActiveX.
Ну открывать Word/Excel документы вполне можно, хотя это не совсем то...
Lazarus 0.9.31/FPC 2.5.1/Win7/Office 2010
Думаю c FPC 2.4.2 тоже будет работать.
Единственно, переделать обработку искл. ситуаций, здесь коряво немного)
Код: Выделить всё
unit tstu;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
comobj;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
path1,path2: string;
Excel, Sheet,Wrd: OleVariant;
begin
path1 := ExtractFilePath(Application.ExeName) + 'Reports\test2.xls';
path2 := ExtractFilePath(Application.ExeName) + 'Reports\comp.doc';
try
Excel := CreateOLEObject('Excel.Application');
Wrd := CreateOLEObject('Word.Application');
except
on E:EOleSysError do
ShowMessage(UTF8Encode(E.Message));
end;
try
Excel.WorkBooks.Open(WideString(UTF8Decode(path1)));
Wrd.Visible:=Visible;
Wrd.Documents.Open(WideString(UTF8Decode(path2)));
Excel.Visible := True;
Excel.Range('B6') := 'B6';
Excel.Range('B7') := 'B7';
Excel.Range('G7') := 'G7';
Excel.Range('I7') := 'I7';
except
on E: EOleException do
ShowMessage(UTF8Encode(E.Message));
end;
end;
end.
Lazarus 0.9.31/FPC 2.5.1/Win7/Office 2010
Думаю c FPC 2.4.2 тоже будет работать.
Единственно, переделать обработку искл. ситуаций, здесь коряво немного)
yuriy kuznetsov писал(а):Думаю, что смогу конвертировать документы в HTML. А как их потом показывать в программе? Хотелось бы сначала попробовать на одном файле, а потом уже браться за остальные.
Можно попробовать с помощью IpHtmlPanel. Пользоваться примерно так:
viewtopic.php?f=23&t=5176&p=43374&hilit=IpHtmlPanel#p36801
-
yuriy kuznetsov
- новенький
- Сообщения: 12
- Зарегистрирован: 05.11.2010 05:43:06
Воспользовалься ссылкой от mtdu.
Большое спасибо всем кто принял участие в решении моей проблемы.
Большое спасибо всем кто принял участие в решении моей проблемы.
А почему не использовать компонент TProcess
в командную строку написать word.exe your.doc
таким же образом можно открывать документы в линукс в openoffice
кроме того openoffice поддерживает командную строку, что позволит задавать действия, получится замена OLE
в командную строку написать word.exe your.doc
таким же образом можно открывать документы в линукс в openoffice
кроме того openoffice поддерживает командную строку, что позволит задавать действия, получится замена OLE
