Delphi与Word之间的融合技术 (0分)

  • 主题发起人 主题发起人 yzhshi
  • 开始时间 开始时间
能帮我解决这个难题吗???
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1518415
 
各位大虾:最近我在用word宏替换时,如果替换字数超过350个时,就会报错。请问一下
word宏替换时有什么限制,怎样解决。十分感谢!!
还有在word2000。pas中ActiveDocument.Range.Find.Execute(var FindText: OleVariant; var MatchCase: OleVariant;
var MatchWholeWord: OleVariant; var MatchWildcards: OleVariant;
var MatchSoundsLike: OleVariant; var MatchAllWordForms: OleVariant;
var Forward: OleVariant; var Wrap: OleVariant; var Format: OleVariant;
var ReplaceWith: OleVariant; var Replace: OleVariant;
var MatchKashida: OleVariant; var MatchDiacritics: OleVariant;
var MatchAlefHamza: OleVariant; var MatchControl: OleVariant):;各参数的意义分别是什么,如果用这个函数解决上面的那个替换问题,应该怎样设置
 
very good
i like it
 
请教yzhshi兄和众位自动化高手!WORD的activex控件问题
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1595376
 
请教各位高~~手[:D]
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1630837
 
hubdog的葵花宝典的地址不行啊!那位高手给一个可以的地址啊!:急!!
http://delphi.mychangshu.com/
 
http://www.playicq.com/dispdocnew.php?t=&id=3334

要注册登录的
 
贴一个打印的功能,功能类似word和excel中ctr+p的功能,有选择打印机的界面
var
PrinterSetupDialog1:TPrinterSetupDialog;
begin
PrinterSetupDialog1:=TPrinterSetupDialog.create(nil);
if PrinterSetupDialog1.Execute then
begin
excel.application.ActivePrinter:=printer.Printers[printer.PrinterIndex];
excel.printout;
end;
PrinterSetupDialog1.free;
end;

 
请问下面的VBA(EXCEL) 宏代码如何翻译成DELPHI 的过程?
Sub SortTable(top, left, right, bottom, Col)
Range(Cells(top, left), Cells(bottom, right)).Select
Selection.Sort Key1:=Columns(Col), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin
End Sub
 
看了上面的内容,受益匪浅。我正在写一个ocx组件,需要嵌入IE中,实现对word的操作,
但考虑到正版的问题,客户不一定都装office,所以想把控制word的功能打包进来。
请问大家一下,如果在机器不装office的情况下,象ole一样控制word!当然word不能另外
一个窗体。
 
当我把Table中的数据汇出到Excel时,若数据类似“00123”,
即前面有“0”时汇到Excel中前面的“0”就没有了,
当一连串的字符都是数字,如身份证号,汇出来后也变样了(成了3,456E+17),
请问这些问题怎么解决?能不能在汇出前先指定某列的格式为文本?如何设置,各位高人请帮忙。
谢了。
 
to 里斯
你可以右键菜单>单元格格式>数字设置单元格的类型,具体类型自己确定,当然也可以写代码实现,使用录制宏功能可以看到VBA代码,然后改写成Delphi代码

我要强调的是office的录制宏功能非常有用
 
to Tsir222
基本上不可能
 
MDIForm中定义了主菜单,其菜单项的GroupIndex分别是0,1,2,3,4,5,6,7,8,9,10,254,255
MDIChildForm中使用了
with OleContainer1 do
begin
CreateObjectFrom('xxx.doc',false);
DoVerb(PrimaryVerb)
end
结果MDIForm中只有GroupIndex 0,2,4的被保留,其他的全部被替换.Delphi帮助中说OLE SERVER只使用1,3,5的GroupIndex(help:search for GroupIndex property (TMenuItem)).
谁能告诉我WORD到底使用了哪些GroupIndex?
谢了在先
 
各位大侠!
请教,能将Delphi中得DBchart创建得图表直接加入word吗?
 
缁濆?鍊煎緱鏀惰棌锛佺湅浜嗕竴涓?笂鍗堝晩锛?璇烽棶yzhshi涓撳?锛屾垜鍋氫竴涓??鏂囩?鐞嗙郴缁燂紝鎴戞兂鍦ㄧ▼搴忎腑璁╃敤鎴锋祻瑙堣?鏂囩殑姝f枃锛屽簲璇ユ槸鐢ㄤ粈涔堟柟娉曟潵瀹炵幇鐨勩
 
在Dephi 5中提供了一组Servers组件,实现了与Office的无缝结合,但有关这一方面的资料却很少,最近笔者接触了一个用户案例,要求最终将数据库中的结果总结成一份Word文档,Word文档中对于标题、正文的字体、字号,文档的纸张大小都有一定的要求,而且还要求以表格的形式体现一部分数据库中的数据。

  笔者通过查找VBA的说明,再对照Dephi的VCL,终于实现了全部功能,现将有关的内容总结如下:


  1、在当前程序目录下建立以标题字段命名的Word文件


  exepath:=application.ExeName;

  for index:=1 to length(exepath) do

  if exepath[index]='/' then

  i:=index;

  exepath:=copy(exepath,1,i);

  doc_file:=exepath+mc+'.doc';

  以标题字段“mc”命名Word文件

  try

  Wordapplication1.connect;

  except

  messagedlg('没有安装Word',mterror,[mbok],0);

  abort;

  end;

  Wordapplication1.Caption := 'XX计划书';

  Wordapplication1.visible := true;

  Worddocument1.activate;


  2、设置纸张大小


  Wordapplication1.ActiveDocument.PageSetup.PageWidth:=XXX;

  Wordapplication1.ActiveDocument.PageSetup.PageHeight:=XXX;

  Wordapplication1.ActiveDocument.PageSetup.LeftMargin := XX;

  //设置左边距

  Wordapplication1.ActiveDocument.PageSetup.rightMargin := XX; 

  //设置右边距


  3、插入页码


  var fpage,pagea:olevariant;

  fpage:=true;

  pagea:=wdAlignPageNumberCenter;

  Wordapplication1.activedocument.sections.item(1).Footers.item(1).PageNumbers.Add(pagea,fpage);


  4、设置页面横向打印


  s:=Wordapplication1.selection.start;

  e:=Wordapplication1.selection.start;

  aa:=wdSectionBreakNextPage;

  Wordapplication1.ActiveDocument.Range(s,e).InsertBreak(aa);

  Wordapplication1.Selection.Start:=Wordapplication1.Selection.Start + 1;

  s:=Wordapplication1.Selection.start;

  e:=Wordapplication1.ActiveDocument.Content.End_;

  Wordapplication1.ActiveDocument.Range(S,e).PageSetup.Orientation:=wdOrientLandscape;


  5、设置字体、字号


  Wordapplication1.Selection.Font.Size:=18;

  Wordapplication1.Selection.Font.Name := '黑体';

  Wordapplication1.Selection.TypeParagraph;

  Wordapplication1.Selection.ParagraphFormat.Alignment:= wdAlignParagraphCenter;

  Wordapplication1.Selection.TypeParagraph;

  Wordapplication1.Selection.TypeText(dbedit4.text);

  //标题 

  Wordapplication1.Selection.Font.Size := 14;

  Wordapplication1.Selection.Font.Name := '宋体';

  Wordapplication1.Selection.TypeParagraph;

  Wordapplication1.Selection.TypeParagraph;

  Wordapplication1.Selection.ParagraphFormat.Alignment := wdAlignParagraphJustify;

  Wordapplication1.Selection.TypeText(' '+trim(dbmemo1.text));

  //正文

   ... ...


  6、插入表格


  Wordapplication1.Selection.Font.Size :=10;

  adoquery2.Active:=false;

  adoquery2.active:=true;

  doc:=Wordapplication1.activedocument;

  counts:=adoquery2.RecordCount;

  //记录数决定表格的行数

  t:=doc.tables.Add(Wordapplication1.selection.range,counts+1,5);//5列

  t.cell(1,1).range.text:= '单位';

  t.Cell(1,1).Width:=120;

  t.cell(1,1).range.Paragraphs.Alignment:= wdAlignParagraphCenter;

  t.cell(1,2).range.text:= '姓名';

   ... ...

  //依次写入其他字段的表头

  for i:=2 to counts+1 do

  begin

  t.cell(i,1).range.text:=adoquery2.field

  byname('dw').asstring;

  t.Cell(i,1).Width:=120;

  t.cell(i,1).range.Paragraphs.Alignment:=

   wdAlignParagraphCenter;

  t.cell(i,2).range.text:=adoquery2.field

  byname('xm').asstring;

  ... ...

  Adoquery2.next;

  End;

  使用Dephi将Word与数据库结合,实现了用户文档的自动生成,大大地方便了用户。
 
后退
顶部