在Delphi中很精确地控制生成的WORD文档的格式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在Delphi中很精确地控制生成的WORD文档的格式
var WordApplication1: TWordApplication;
通过以下的方式就可以在DELPHI中很精确地控制生成的WORD文档的格式。

//-----------------打开WORD-------------------------------
Wordapplication1.visible := true; //显示WROD
Worddocument1.activate;
//-----------------设置字体--------------------------------
wordapplication1.Selection.Font.Size := 14; //字号
:= '宋体'; //字体
wordapplication1.Selection.Font.Bold := wdToggle; //加粗
//-------------将图形文件插入文档当前位置--------------------
Wordapplication1.Selection.InlineShapes.AddPicture('pict.jpg', emptyparam, emptyparam, emptyparam);
//---------------换行---------------------
wordapplication1.Selection.TypeParagraph;
//------------写入文字---------------
wordapplication1.Selection.TypeText('这是用TypeText方法向文档写入的文字');
//------------写带下划线的文字----------------
wordapplication1.Selection.Font.UnderlineColor := wdcolorautomatic; //下划线颜色
wordapplication1.Selection.Font.Underline := wdUnderlineSingle; //下划线线型
wordapplication1.Selection.TypeText('这是下划线文字');
wordapplication1.Selection.Font.Underline := wdUnderlineNone; //无下划线
//---------------文字居中----------------
wordapplication1.Selection.ParagraphFormat.Alignment := wdAlignParagraphCenter; //居中对齐
wordapplication1.Selection.TypeText('水平对齐文字');
wordapplication1.Selection.ParagraphFormat.Alignment := wdAlignParagraphLeft; //靠左对齐
//--------------插入分节符,其中t: olevariant;---------------------
t := wdPageBreak;
wordapplication1.Selection.InsertBreak(t);
//-----------------插入分页符,其中t: olevariant;----------------------------
t := wdSectionBreakNextPage;
wordapplication1.Selection.InsertBreak(t);
//-------------------生成页眉页脚并写入数据----------
worddocument1.ActiveWindow.ActivePane.View.SeekView := wdseekcurrentpageheader; //选页眉对象
wordapplication1.Selection.TypeText('这是页眉文字);
wordapplication1.Selection.ParagraphFormat.Alignment := wdAlignParagraphLeft; //对齐方式
wordapplication1.Selection.PageSetup.DifferentFirstPageHeaderFooter := -1; //首页不同
worddocument1.ActiveWindow.ActivePane.View.SeekView := wdseekcurrentpageFooter; //选页脚对象
//页脚上面横线
wordapplication1.Selection.WholeStory;
wordapplication1.Selection.ParagraphFormat.Borders.Item(wdBorderLeft).LineStyle := wdLineStyleNone;
wordapplication1.Selection.ParagraphFormat.Borders.Item(wdBorderLeft).LineStyle := wdLineStyleNone;
wordapplication1.Selection.ParagraphFormat.Borders.Item(wdBorderRight).LineStyle := wdLineStyleNone;
wordapplication1.Selection.ParagraphFormat.Borders.Item(wdBorderTop).LineStyle := wdLineStyleSingle;
wordapplication1.Selection.ParagraphFormat.Borders.Item(wdBorderTop).LineWidth := wdLineWidth050pt;
wordapplication1.Selection.ParagraphFormat.Borders.Item(wdBorderTop).Color := wdColorAutomatic;
wordapplication1.Selection.ParagraphFormat.Borders.Item(wdBorderBottom).LineStyle := wdLineStyleNone;
wordapplication1.Selection.ParagraphFormat.Borders.DistanceFromTop := 1;
wordapplication1.Selection.ParagraphFormat.Borders.DistanceFromLeft := 4;
wordapplication1.Selection.ParagraphFormat.Borders.DistanceFromBottom := 1;
wordapplication1.Selection.ParagraphFormat.Borders.DistanceFromRight := 4;
wordapplication1.Selection.ParagraphFormat.Borders.Shadow := False;
//页脚文字
wordapplication1.Selection.TypeText('这是页脚文字');
wordapplication1.Selection.ParagraphFormat.Alignment := wdAlignParagraphRight; //对齐方式
wordapplication1.Selection.PageSetup.DifferentFirstPageHeaderFooter := -1;
//切换到文档区域
wordapplication1.ActiveWindow.ActivePane.View.SeekView := wdseekmaindocument;
//------------------写带上、下标的文字-------------------------
Wordapplication1.Selection.TypeText('正常文字1');
Wordapplication1.Selection.Font.Superscript := -1; //设置为上标
Wordapplication1.Selection.TypeText('上标文字');
Wordapplication1.Selection.Font.Superscript := 0; //恢复正常文字
Wordapplication1.Selection.TypeText('正常文字2');
Wordapplication1.Selection.Font.Subscript:= -1; //设置为下标
Wordapplication1.Selection.TypeText('下标文字');
Wordapplication1.Selection.Font.Subscript:= 0; //恢复正常文字
//--------------创建各级标题--------------
prop := '标题1'; //var prop: olevariant;
with Wordapplication1.Selection do
begin
Set_Style(prop); //设为一级标题
:= '宋体'; //标题字体
Font.Size := 14; //标题字号
ParagraphFormat.Alignment := wdAlignParagraphCenter; //标题对齐方式ParagraphFormat.SpaceBefore := 12; //标题段前距离ParagraphFormat.SpaceAfter := 6; //标题段后距离
Font.Bold :=1; //加粗
TypeText('标题文字');
TypeParagraph;
prop := '正文'; //恢复正文格式
Set_Style(prop);
:= '宋体';
Font.Size := 10.5;
Font.Bold :=0;
end;
//--------------------表格处理---------------------------
//其中:t: olevariant; TableName: string; row, col: integer;
with Wordapplication1.Selection do
//写表名
ParagraphFormat.Alignment := wdAlignParagraphCenter;
ParagraphFormat.SpaceBefore := 6;
ParagraphFormat.SpaceAfter := 6;
TypeText('表1 ' + TableName);
TypeParagraph;
//插入表格
t := doc.tables.Add(Range, row, col, 1, 0); //插入row行col列的表
t.range.ParagraphFormat.Alignment := wdAlignParagraphCenter; //表格居中
t.Range.Font.Size:=9; //单元格字号为小五
t.range.Cells.VerticalAlignment := wdCellAlignVerticalCenter; //单元格垂直居中t.range.Rows.Alignment := wdAlignRowCenter; //单元格水平居中//设置每列宽度
t.Columns.Item(1).Width:=40;
t.Columns.Item(2).Width:=92;
……
//合并单元格
t.cell(9, 4).merge(t.cell(9, 5));
//向单元格写入文字
t.cell(1, 1).range.text := '序号'; //第一行第一列
t.cell(1, 2).range.text := '姓名'; //第一行第二列
end;
//----------页面设置:修改纸张为A3横向------------
with wordapplication1.Selection.Range.PageSetup do
begin
Orientation := wdOrientLandscape;
TopMargin := 3.17 * 28.35;
BottomMargin := 3.17 * 28.35;
LeftMargin := 2.54 * 28.35;
RightMargin := 2.54 * 28.35;
Gutter := 0;
HeaderDistance := 1.5 * 28.35;
FooterDistance := 1.75 * 28.35;
PageWidth := 42 * 28.35;
PageHeight := 29.7 * 28.35;
FirstPageTray := wdPrinterDefaultBin;
OtherPagesTray := wdPrinterDefaultBin;
SectionStart := wdSectionNewPage;
DifferentFirstPageHeaderFooter := 0;
VerticalAlignment := wdAlignVerticalTop;
SuppressEndnotes := 0;
MirrorMargins := 0;
TwoPagesOnOne := False;
BookFoldPrinting := False;
BookFoldRevPrinting := False;
BookFoldPrintingSheets := 1;
GutterPos := wdGutterPosLeft;
LayoutMode := wdLayoutModeLineGrid;olevariant;
end;
//------------自动插入目录--------------------------
//各级目录字型控制
t := '目录1';
Wordapplication1.ActiveDocument.Styles.Item(t).Font.Bold:=1;
t := '目录2';
Wordapplication1.ActiveDocument.Styles.Item(t).Font.Bold:=1;
//这里是生成目录
UseHeadingStyles := True; //以下变量均为olevariant类型
UpperHeadingLevel := 1;
LowerHeadingLevel := 4;
usefields := 1;
talbeid := 1;
RightAlignPageNumbers := True;
IncludePageNumbers := True;
Wordapplication1.ActiveDocument.TablesOfContents.add(Wordapplication1.Selection.Range, UseHeadingStyles, UpperHeadingLevel, LowerHeadingLevel, usefields, talbeid, RightAlignPageNumbers,
IncludePageNumbers, IncludePageNumbers, IncludePageNumbers, IncludePageNumbers, IncludePageNumbers);
//保存文档
t := false;
WordDocument1.SaveAs(FileName, t); //存在Filename时,不提示直接保存
//关闭WORD Wordapplication1.Disconnect;。

相关文档
最新文档