请教,如何连接多个word文档(10分)

  • 主题发起人 cjchtree
  • 开始时间
C

cjchtree

Unregistered / Unconfirmed
GUEST, unregistred user!
请教,如何连接多个word文档,就是把多个文档的内容合并到一个文档里面。格式为每个文档占一行或者是一段。高手帮忙啊
 
把多个文档内容复制粘贴到一个文档中
 
对,就是实现多个文件内容的合并
 
没有人愿意帮忙吗?
 
人来啊,谢谢啦。帮忙看看吧
 
"格式为每个文档占一行或者是一段。"
这句是什么意思?
是需要合并的文挡里面只有一行或者一段,还是把每个里面有多段的文挡给删删减减合
并成一段再贴过去?
而且好像你是用C++ Builder用Delphi的代码可以不?
 
是希望把每个文件的内容在新文件里面独立开。因为我用的是cb,所以delphi就不要了。因为我怕不会转换。
 
你直接append进去不可以吗?
 
请教fangzhou_com:
我不会用这个,刚开始学,真的是不懂,请你帮帮忙了。能不能留下联系方法。或者给一个例程。谢谢了。
 
爱莫能助,我没装CB,而且对c有一种天然的恐惧感!
 
那你能不能给个delphi下的做法参考下,谢谢了。
 
不好意思,昨天没有注意看,以为你只要CB的代码,
帮你搞定了,你自己想办法转化成C语言吧!
需要生成了的测试程序(delphi版)给个Email发给你!
呵呵,给101RMB 就帮你找人转化成CB(开个玩笑)
实现思路是:依次打开1文档,将其内容存入临时文件,然后再打开2文档,再添入临时文件中,再开3,再存...,最后完成需要的合并后临时文件写入doc文档。这样就实现了两个文档合并到1个文档。其实Borland已经在她的控件里面已经封装了很多功能,多看帮助和自带的Demo。
程序里主要用到TWordDocument 和 WordApplication,我想CB里面的控件也应该差不多的吧
-------------------------------------------------
unit Unit1;
{
演示如何将3个word文档(1.doc 2.doc 3.doc)合并到一个word文档(保存文件.doc)
中,为此,您除了需要添加所要的控件外,还需在本程序目录下建立三个word文档
(1.doc 2.doc 3.doc)
程序在 windows2000 professional + delphi 6.0 下调试通过
winsong 2006-06-07
[成功将三个1.09MB的带图片doc合并]
}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Word2000, OleServer, ComCtrls;
type
TFrom1 = class(TForm)
Button1: TButton;
WordDocument1: TWordDocument;
Label1: TLabel;
ProgressBar1: TProgressBar;
CheckBox1: TCheckBox;
Edit1: TEdit;
ListBox1: TListBox;
WordApplication1: TWordApplication;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
From1: TFrom1;
implementation
{$R *.dfm}
procedure TFrom1.FormCreate(Sender: TObject);
begin
CheckBox1.Caption := '保存DOC文件在:';
CheckBox1.Enabled := true;
Edit1.Text := ExtractFilePath(Application.EXEName) + '保存文件.doc';
Button1.Caption := '开始合并';
ListBox1.Clear;
ListBox1.Items.Insert(0, ExtractFilePath(Application.EXEName) + '1.doc');
ListBox1.Items.Insert(1, ExtractFilePath(Application.EXEName) + '2.doc');
ListBox1.Items.Insert(2, ExtractFilePath(Application.EXEName) + '3.doc');
end;

procedure TFrom1.Button1Click(Sender: TObject);
var
I,do
cCount: Integer;
do
cFileName: String;
do
cFile: OleVariant;
begin
do
cCount := 0;
if ListBox1.Items.Count <1 then
Exit;
Button1.Enabled := False;
try
From1.Update;
try
WordApplication1.Connect ;
WordApplication1.Visible := True;
WordDocument1.ConnectTo(WordApplication1.Documents.Add(EmptyParam,
EmptyParam, EmptyParam, EmptyParam));
for I := 0 to ListBox1.Items.Count -1do
begin
do
cCount :=do
cCount + 1;
ProgressBar1.Position := I * 100 div ListBox1.Items.Count;
Label1.Caption := ListBox1.Items.Strings;
From1.Update;
do
cFileName := ListBox1.Items.Strings;
WordApplication1.Selection.InsertFile(DocFileName, EmptyParam,
EmptyParam, EmptyParam, EmptyParam);//关键 写入
end;
ProgressBar1.Position := 100;
if CheckBox1.Checked then
begin
do
cFile := Edit1.Text;
WordDocument1.SaveAs(DocFile);//关键 保存合并后的文件
end;

WordApplication1.Disconnect ;
if CheckBox1.Checked then
Application.MessageBox(PChar('文档合并工作已经成功的完成。保存在'
+ #13+ Edit1.Text ),'完成', MB_OK or MB_ICONINFORMATION)
else
Application.MessageBox(
PChar('文档合并工作已经成功的完成。请及时保存该文档!'),
'完成', MB_OK or MB_ICONINFORMATION);
if CheckBox1.Checked then
begin
Edit1.Text := ExtractFilePath(Application.EXEName)
+ '合并文档' + IntToStr(DocCount) + '.Doc';
end;

except
on E: Exception do
begin
Application.MessageBox(PChar('系统在合并Word文档时发生错误,请重试!'
+ #13 + E.message),'系统错误', MB_OK or MB_ICONERROR);
end;
//end except On
end;
finally
Button1.Enabled := True;
ProgressBar1.Position := 0;
Label1.Caption := '正在启动 Microsoft Word...';
end;
end;

end.
--------------------------------------------------------------
 
感谢 winsong,其实今天我已经基本绝望了。问题得不到解决,昨天又通宵了一晚上没有收获,今天看到你的回复很感谢。我想看看你的例程可以吗?这个是我邮箱:cjchtree@163.com
 
已经发送过去了!
 
感谢winsong的帮助,例程已经收到。我自己再看看,谢谢了。
 
顶部