社区
Delphi
帖子详情
如何将dbgrid中的数据插入已经存在的word文档的一个已经建立好的表中?
YAMABACK
2003-03-19 02:58:10
word文档已经打开了,表是事先见好的,字段与dbgrid的字段一一对应
...全文
27
4
打赏
收藏
如何将dbgrid中的数据插入已经存在的word文档的一个已经建立好的表中?
word文档已经打开了,表是事先见好的,字段与dbgrid的字段一一对应
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kerisyml
2003-03-19
打赏
举报
回复
对Word模板定义标签
然后在程序中给标签写数据OK
procedure TForm1.Button4Click(Sender: TObject);
var
WordApp,DocApp:OleVariant;
BookMark_Name: string;
begin
try
WordApp := CreateOleObject('Word.Application');
except
Exit;
end;
WordApp.Visible := True;
DocApp:=WordApp.Documents.Open('C:\公安交通管理撤销决定书.dot');
//赋值
BookMark_Name := 'test'; //标签
DocApp.Application.Selection.goto(What := wdGoToBookmark, Name := BookMark_Name);
DocApp.Application.Selection.Text := '这个是替换test的结果';
end;
thinkcat
2003-03-19
打赏
举报
回复
我没有做过,给个文章你看看吧,好像有帮助
向word文档中输出表格及图形
free_card(原作)
关键字 word
工作中遇到一个软件开发项目,该项目要求将相关数据报表存为word格式文档(涉及表格、图形的输出),便于用户修改。
本人在开发过程中,发现此类资料较少,且介绍相对简单,大多只是文本数据的的简单输出。现将个人摸索出的一些方法及心得体会告诉大家,以求共同探讨,共同提高!
form上放置以下控件:一个Tadoquery组件,名称为ADOQuery1;
一个TWordFont组件,名称为WordFont1;
一个TWordApplication组件,名称为WordApplication1;
一个TWordDocument1组件,名称为Doc;
一个TWordParagraphFormat组件,名称为ParaFmt;
一个TIMAGE组件,名称为IMAGE1;
一个TBUTTON组件,名称为Button1;
procedure TFrm_TravilRDXL.EnterText;//自定义函数
var
S: Selection;
MyFormat : Word;
// Bitmap : TBitMap;
AData :cardinal;
APalette : hpalette;
begin
S := WordApplication1.Selection;
WordFont1.ConnectTo(S.Font);
S.TypeText('甘肃省兰州市旅游管理局热点线路统计表');
//加回车键,形成第一个段落:Doc.Paragraphs.Item(1)
S.TypeParagraph;
//输入文字
S.TypeText(txt_DateFrom.Text+'至'+txt_DateTo.text);
//加回车键,形成第二个段落:Doc.Paragraphs.Item(2)
S.TypeParagraph;
S.TypeText('使用部门:'+'销售部'+#13);
S.TypeText('时间范围:'+'2002-8-8至2002-8-28'+#13 );
S.TypeText('线路类型:'+'团体线'+#13);
s.TypeText('线路等级:'+'豪华线'+#13);
//加回车键,形成第三个段落:Doc.Paragraphs.Item(3)
S.TypeParagraph;
//--------------------------设置段落1属性-------------------//
ParaFmt.ConnectTo(Doc.Paragraphs.Item(1).Format);
//绑定WordFont1与Doc.Paragraphs.Item(1).Range.Font
WordFont1.ConnectTo(Doc.Paragraphs.Item(1).Range.Font);
//设置段落对齐方式
ParaFmt.Alignment := wdAlignParagraphCenter;
//设置段落行距(磅)
ParaFmt.SpaceAfter := 24;
//画单水平线
ParaFmt.Borders.Item(3).LineStyle := wdLineStyleSingle;
WordFont1.Size := 18;
WordFont1.Name := 'Arial';
WordFont1.Bold := integer(True);
WordFont1.ColorIndex:=5; //粉红色字体
//--------------------------设置段落2属性-------------------//
ParaFmt.ConnectTo(Doc.Paragraphs.Item(2).Format);
//绑定WordFont1与Doc.Paragraphs.Item(1).Range.Font
WordFont1.ConnectTo(Doc.Paragraphs.Item(2).Range.Font);
//设置段落对齐方式
ParaFmt.Alignment := wdAlignParagraphCenter;
//设置段落行距(磅)
ParaFmt.SpaceAfter := 12;
WordFont1.Size := 18;
WordFont1.Name := 'Arial';
end;
procedure TFrm_TravilRDXL.Button1Click(Sender: TObject);
var
i,j:integer;
begin
i:=2;//初始化
j:=1;
WordApplication1.Connect;
Doc.ConnectTo(WordApplication1.Documents.Add(EmptyParam, EmptyParam));
WordApplication1.Visible := True;//显示word文档
EnterText;//自定义函数---添加文本
WordApplication1.Selection.SetRange(100,100);//设定段落范围
doc.Tables.Add(WordApplication1.Selection.Range,ADOQuery1.RecordCount+1,5);//创建表格
doc.Tables.Item(1).Columns.Item(1).Width:=120;//设定第一列宽度
//--------------------------设定第一列字体属性-----------------------//
while j<6 do begin
doc.Tables.item(1).cell(1,j).Range.Bold:=integer(true);
WordFont1.ConnectTo(doc.Tables.item(1).cell(1,j).Range.Font);
WordFont1.ColorIndex:=10;
j:=j+1;
end;
//--------------------------向表格中添加数据----------------------------------------//
doc.Tables.Item(1).Cell(1,1).Range.Text:='线路名称';
doc.Tables.Item(1).cell(1,2).Range.text:='人数';
doc.Tables.item(1).cell(1,3).Range.text:='销售额(元)';
doc.Tables.item(1).cell(1,4).Range.text:='毛利润';
doc.Tables.Item(1).cell(1,5).Range.text:='毛利润率';
while not ADOQuery1.Eof do begin
doc.Tables.Item(1).Cell(i,1).Range.Text:=ADOQuery1.fieldbyname('linename').asstring;
doc.Tables.Item(1).cell(i,2).Range.text:=ADOQuery1.Fieldbyname('STUFFNUM').asstring;
doc.Tables.Item(1).cell(i,3).Range.text:=ADOQuery1.Fieldbyname('TOTALACCOUNT').asstring;
doc.Tables.Item(1).cell(i,4).Range.text:=ADOQuery1.Fieldbyname('TOTAL').asstring;
doc.Tables.Item(1).cell(i,5).Range.text:=ADOQuery1.Fieldbyname('ration').asstring;
ADOQuery1.Next;
i:=i+1;
end;
//----------------------------------------------------------------------//
WordApplication1.Selection.SetRange(350,350);//设定段落范围
ParaFmt.ConnectTo(WordApplication1.Selection.Paragraphs.item(1).Format);
ParaFmt.Borders.Item(3).ColorIndex:=6;
ParaFmt.Borders.Item(3).LineStyle:=wdLineStyleSingle;//画底线
//-----------设置段落字体----------------------------------------//
WordFont1.ConnectTo(WordApplication1.Selection.Paragraphs.Item(1).Range.Font);
WordFont1.Bold:=integer(true);
WordFont1.Size:=16;
//-----------------------------粘贴图形-------------------------//
Image1.Picture.SaveToClipboardFormat(MyFormat,AData,APalette);
Clipboard.SetAsHandle(MyFormat,AData);
doc.Sentences.Last.Paste;
/--------------------------插入记录-------------------------------------//
doc.Range.InsertAfter(#13+'操作员:'+ G_username);//G_username为全局变量
end;
YAMABACK
2003-03-19
打赏
举报
回复
如何给已有的表格添加行和列呢?解决这个问题就可以了
thinkcat
2003-03-19
打赏
举报
回复
你说的这个需要对WORD文档定位,恐怕有点难度吧
看看这个有没有帮助
如何使用 Delphi 给 word 增加表格
现有一个模板文件 aaa.dot.
里面有一个表格,形式如
+------+-------------------------------------------
|姓名:|网重
|---------------------------------------------------
|简历:
+-------------------------------------------------
|-------------------------------------------
现在需要简历下面的单元格中动态插入一个表格(两列,行数由数据库中的数据决定)
现在代码写了如下:
..try
WordApp := CreateOleObject('Word.Application');
MyDoc := CreateOleObject('Word.Document');
except
Raise Exception.Create('无法打开Word,请确认已安装Word。');
end;
WordApp.Visible := true;
MyDoc := WordApp.Documents.Add(FileName,false);
MyDoc.BookMarks.Item('简历表').Select;
WordApp.Selection.Text := Edit1.Text+'的个人简历';
wTable := MyDoc.Tables.Item(1);
wtable.cell(3,1).Range.Text :='个人简历';
wtablenew:=wtable.cell(3,1).tables.Add(wtable.cell (3,1).range,10,10,wdWord9TableBehavior,wdAutoFitFixed);
Delphi读入
数据
到
DB
Grid
并向Word
中
插入
表格.rar
Delphi7.0读入
数据
到
DB
Grid
并向Word
中
插入
表格,其实就是Delphi向Word
中
插入
表格,测试
数据
由Delphi从SQLSERVER
中
读取,然后放入
DB
Grid
中
,再将
DB
Grid
网格
中
的
数据
通过Word转换成表格。 begin if TString
Grid
...
Delphi开发范例宝典目录
实例270 向SQL Server
中
存储
Word文档
348 实例271 从SQL Server
中
提取
Word文档
349 8.4 SQL Server服务器应用 350 实例272 和服务器时间同步 350 实例273 取得网络
中
的SQL服务器名 351 8.5
数据
库维护 ...
delphi 开发经验技巧宝典源码
0209 如何把ListBox
中
的内容拖曳到另
一个
ListBox
中
139 0210 把
DB
Grid
中
的
数据
赋给数组 139 0211 如何获取Data
Grid
单元格
中
的内容 140 0212 如何锁定文本框
中
的文本 141 0213 如何设置光标到文本框的末尾 ...
delphi 开发经验技巧宝典源码06
0209 如何把ListBox
中
的内容拖曳到另
一个
ListBox
中
139 0210 把
DB
Grid
中
的
数据
赋给数组 139 0211 如何获取Data
Grid
单元格
中
的内容 140 0212 如何锁定文本框
中
的文本 141 0213 如何设置光标到文本框的末尾 ...
Delphi
5,386
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章