如何提高delphi+Word写入数据速度??? 如何提高delphi+Word写入数据速度??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果格式不复杂,或者格式比较规范,可以先写入StringList中,然后复制到Word中,然后进行排版转换,这样速度可以提高很多。 比如:sListMain为TStringList,记录的内容非常规范,记录的是各个字段的信息-----------------------------------------序号 字段名称 字段别名 字段类型 默认值 允许空 主键 输入1 MeasureID 器具编号 Varchar(8) N Y 手工2 Name 器具名称 Varchar(32) Y 手工-----------------------------------------然后在Word中转为表格 Doc:=WordApp.Documents.Add; Doc.Range.Delete; Doc.Range.InsertAfter(sListMain.Text); //定义全文的字体为12,粗体 Ran:=Doc.Range; Ran.Font.Size:=12; Ran.Bold:=true; //文章标题的字体为16,粗体,中心对齐 Ran:=Doc.Paragraphs.Item(1).Range; Ran.Font.Size:=16; Ran.Bold:=true; Ran.ParagraphFormat.Alignment:=wdAlignParagraphCenter; //各个表名的字体为14,粗体 for i:=0 to iTableMax-1 do Doc.Paragraphs.Item(iRan[i,0]-1).Range.Font.Size:=14; sBarText(0,'正在排版内容,请稍候······'); ProgressBar1.Position:=60; Application.ProcessMessages; //把一个范围内的数据转化为表格,表格识别符为制表符(#9) for i:=iTableMax-1 downto 0 do begin Ran:=Doc.Range(Doc.Paragraphs.Item(iRan[i,0]).Range.Start, Doc.Paragraphs.Item(iRan[i,1]).Range.End); Ran.ConvertToTable(#9,iRan[i,1]-iRan[i,0],8); end; ProgressBar1.Position:=75; //各列的宽度 for i:=iTableMax downto 1 do begin Doc.Tables.Item(i).Columns.Item(1).Width:=35; Doc.Tables.Item(i).Columns.Item(2).Width:=100; Doc.Tables.Item(i).Columns.Item(3).Width:=100; Doc.Tables.Item(i).Columns.Item(4).Width:=80; Doc.Tables.Item(i).Columns.Item(5).Width:=50; Doc.Tables.Item(i).Columns.Item(6).Width:=50; Doc.Tables.Item(i).Columns.Item(7).Width:=35; Doc.Tables.Item(i).Columns.Item(8).Width:=35; end; 关于截取指定窗口图像问题! 请问如何在我的delphi程序加入splash画面 使用batchmove,报数据表mytable_name的定义未找到!急,郁闷好久了 插件高手进来 局域网内机器通过代理服务器连接互联网上的数据库 SkinEngine是免费的吗 高手帮忙 使用TADOCommand连接Access,使用insert提示语法错误,我疯了.... 在用UDP进行文件传输是应该怎么来进行文件的分解与组包? 临时表更新主表问题,给看看。。。 求教excel表导入到SQL数据表的代码 哪位朋友介绍一个学习fastreport的网站或教程~分全部送出~
-----------------------------------------
序号 字段名称 字段别名 字段类型 默认值 允许空 主键 输入
1 MeasureID 器具编号 Varchar(8) N Y 手工
2 Name 器具名称 Varchar(32) Y 手工
-----------------------------------------
然后在Word中转为表格 Doc:=WordApp.Documents.Add;
Doc.Range.Delete;
Doc.Range.InsertAfter(sListMain.Text);
//定义全文的字体为12,粗体
Ran:=Doc.Range;
Ran.Font.Size:=12;
Ran.Bold:=true; //文章标题的字体为16,粗体,中心对齐
Ran:=Doc.Paragraphs.Item(1).Range;
Ran.Font.Size:=16;
Ran.Bold:=true;
Ran.ParagraphFormat.Alignment:=wdAlignParagraphCenter; //各个表名的字体为14,粗体
for i:=0 to iTableMax-1 do
Doc.Paragraphs.Item(iRan[i,0]-1).Range.Font.Size:=14; sBarText(0,'正在排版内容,请稍候······');
ProgressBar1.Position:=60;
Application.ProcessMessages; //把一个范围内的数据转化为表格,表格识别符为制表符(#9)
for i:=iTableMax-1 downto 0 do
begin
Ran:=Doc.Range(Doc.Paragraphs.Item(iRan[i,0]).Range.Start,
Doc.Paragraphs.Item(iRan[i,1]).Range.End);
Ran.ConvertToTable(#9,iRan[i,1]-iRan[i,0],8);
end; ProgressBar1.Position:=75;
//各列的宽度
for i:=iTableMax downto 1 do
begin
Doc.Tables.Item(i).Columns.Item(1).Width:=35;
Doc.Tables.Item(i).Columns.Item(2).Width:=100;
Doc.Tables.Item(i).Columns.Item(3).Width:=100;
Doc.Tables.Item(i).Columns.Item(4).Width:=80;
Doc.Tables.Item(i).Columns.Item(5).Width:=50;
Doc.Tables.Item(i).Columns.Item(6).Width:=50;
Doc.Tables.Item(i).Columns.Item(7).Width:=35;
Doc.Tables.Item(i).Columns.Item(8).Width:=35;
end;