Delphi控制Excel2000心得
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi控制Excel2000心得相关的知识,希望对你有一定的参考价值。
参考技术A一 使用动态创建的方法
首先创建 Excel 对象 使用ComObj: var ExcelApp: Variant; ExcelApp := CreateOleObject( Excel Application );
) 显示当前窗口 ExcelApp Visible := True;
) 更改 Excel 标题栏 ExcelApp Caption := 应用程序调用 Microsoft Excel ;
) 添加新工作簿 ExcelApp WorkBooks Add;
) 打开已存在的工作簿 ExcelApp WorkBooks Open( C:\\Excel\\Demo xls );
) 设置第 个工作表为活动工作表 ExcelApp WorkSheets[ ] Activate; 或 ExcelApp WorksSheets[ Sheet ] Activate;
) 给单元格赋值 ExcelApp Cells[ ] Value := 第一行第四列 ;
) 设置指定列的宽度(单位 字符个数) 以第一列为例 ExcelApp ActiveSheet Columns[ ] ColumnsWidth := ;
) 设置指定行的高度(单位 磅)( 磅= 厘米) 以第二行为例 ExcelApp ActiveSheet Rows[ ] RowHeight := / ; // 厘米
) 在第 行之前插入分页符 ExcelApp WorkSheets[ ] Rows[ ] PageBreak := ;
) 在第 列之前删除分页符 ExcelApp ActiveSheet Columns[ ] PageBreak := ;
) 指定边框线宽度 ExcelApp ActiveSheet Range[ B :D ] Borders[ ] Weight := ; 左 右 顶 底 斜( \\ ) 斜( / )
) 清除第一行第四列单元格公式 ExcelApp ActiveSheet Cells[ ] ClearContents;
) 设置第一行字体属性 ExcelApp ActiveSheet Rows[ ] Font Name := 隶书 ; ExcelApp ActiveSheet Rows[ ] Font Color := clBlue; ExcelApp ActiveSheet Rows[ ] Font Bold := True; ExcelApp ActiveSheet Rows[ ] Font UnderLine := True;
) 进行页面设置
a 页眉 ExcelApp ActiveSheet PageSetup CenterHeader := 报表演示 ; b 页脚 ExcelApp ActiveSheet PageSetup CenterFooter := 第&P页 ; c 页眉到顶端边距 cm ExcelApp ActiveSheet PageSetup HeaderMargin := / ; d 页脚到底端边距 cm ExcelApp ActiveSheet PageSetup HeaderMargin := / ; e 顶边距 cm ExcelApp ActiveSheet PageSetup TopMargin := / ; f 底边距 cm ExcelApp ActiveSheet PageSetup BottomMargin := / ; g 左边距 cm ExcelApp ActiveSheet PageSetup LeftMargin := / ; h 右边距 cm ExcelApp ActiveSheet PageSetup RightMargin := / ; i 页面水平居中 ExcelApp ActiveSheet PageSetup CenterHorizontally := / ; j 页面垂直居中 ExcelApp ActiveSheet PageSetup CenterVertically := / ; k 打印单元格网线 ExcelApp ActiveSheet PageSetup PrintGridLines := True;
) 拷贝操作
a 拷贝整个工作表 ExcelApp ActiveSheet Used Range Copy; b 拷贝指定区域 ExcelApp ActiveSheet Range[ A :E ] Copy; c 从A 位置开始粘贴 ExcelApp ActiveSheet Range [ A ] PasteSpecial; d 从文件尾部开始粘贴 ExcelApp ActiveSheet Range PasteSpecial;
) 插入一行或一列 a ExcelApp ActiveSheet Rows[ ] Insert; b ExcelApp ActiveSheet Columns[ ] Insert;
) 删除一行或一列 a ExcelApp ActiveSheet Rows[ ] Delete; b ExcelApp ActiveSheet Columns[ ] Delete;
) 打印预览工作表 ExcelApp ActiveSheet PrintPreview;
) 打印输出工作表 ExcelApp ActiveSheet PrintOut;
) 工作表保存 if not ExcelApp ActiveWorkBook Saved then ExcelApp ActiveSheet PrintPreview;
) 工作表另存为 ExcelApp SaveAs( C:\\Excel\\Demo xls );
) 放弃存盘 ExcelApp ActiveWorkBook Saved := True;
) 关闭工作簿 ExcelApp WorkBooks Close;
) 退出 Excel ExcelApp Quit;
二 使用Delphi 控件方法 在Form中分别放入ExcelApplication ExcelWorkbook和ExcelWorksheet
) 打开Excel ExcelApplication Connect;
) 显示当前窗口 ExcelApplication Visible[ ]:=True;
) 更改 Excel 标题栏 ExcelApplication Caption := 应用程序调用 Microsoft Excel ;
) 添加新工作簿 ExcelWorkbook ConnectTo(ExcelApplication Workbooks Add(EmptyParam )); ) 添加新工作表 var Temp_Worksheet: _WorkSheet; begin Temp_Worksheet:=ExcelWorkbook WorkSheets Add(EmptyParam EmptyParam EmptyParam EmptyParam ) as _WorkSheet; ExcelWorkSheet ConnectTo(Temp_WorkSheet); End; ) 打开已存在的工作簿 ExcelApplication Workbooks Open (c:\\a xls EmptyParam EmptyParam EmptyParam EmptyParam EmptyParam EmptyParam EmptyParam EmptyParam EmptyParam EmptyParam EmptyParam EmptyParam )
) 设置第 个工作表为活动工作表 ExcelApplication WorkSheets[ ] Activate; 或 ExcelApplication WorksSheets[ Sheet ] Activate;
) 给单元格赋值 ExcelApplication Cells[ ] Value := 第一行第四列 ;
) 设置指定列的宽度(单位 字符个数) 以第一列为例 ExcelApplication ActiveSheet Columns[ ] ColumnsWidth := ;
) 设置指定行的高度(单位 磅)( 磅= 厘米) 以第二行为例 ExcelApplication ActiveSheet Rows[ ] RowHeight := / ; // 厘米
) 在第 行之前插入分页符 ExcelApplication WorkSheets[ ] Rows[ ] PageBreak := ;
) 在第 列之前删除分页符 ExcelApplication ActiveSheet Columns[ ] PageBreak := ;
) 指定边框线宽度 ExcelApplication ActiveSheet Range[ B :D ] Borders[ ] Weight := ; 左 右 顶 底 斜( \\ ) 斜( / )
) 清除第一行第四列单元格公式 ExcelApplication ActiveSheet Cells[ ] ClearContents;
) 设置第一行字体属性 ExcelApplication ActiveSheet Rows[ ] Font Name := 隶书 ; ExcelApplication ActiveSheet Rows[ ] Font Color := clBlue; ExcelApplication ActiveSheet Rows[ ] Font Bold := True; ExcelApplication ActiveSheet Rows[ ] Font UnderLine := True;
) 进行页面设置 a 页眉 ExcelApplication ActiveSheet PageSetup CenterHeader := 报表演示 ; b 页脚 ExcelApplication ActiveSheet PageSetup CenterFooter := 第&P页 ; c 页眉到顶端边距 cm ExcelApplication ActiveSheet PageSetup HeaderMargin := / ; d 页脚到底端边距 cm ExcelApplication ActiveSheet PageSetup HeaderMargin := / ; e 顶边距 cm ExcelApplication ActiveSheet PageSetup TopMargin := / ; f 底边距 cm ExcelApplication ActiveSheet PageSetup BottomMargin := / ; g 左边距 cm ExcelApplication ActiveSheet PageSetup LeftMargin := / ; h 右边距 cm ExcelApplication ActiveSheet PageSetup RightMargin := / ; i 页面水平居中 ExcelApplication ActiveSheet PageSetup CenterHorizontally := / ; j 页面垂直居中 ExcelApplication ActiveSheet PageSetup CenterVertically := / ; k 打印单元格网线 ExcelApplication ActiveSheet PageSetup PrintGridLines := True;
) 拷贝操作
a 拷贝整个工作表 ExcelApplication ActiveSheet Used Range Copy;
b 拷贝指定区域 ExcelApplication ActiveSheet Range[ A :E ] Copy;
c 从A 位置开始粘贴 ExcelApplication ActiveSheet Range [ A ] PasteSpecial;
d 从文件尾部开始粘贴 ExcelApplication ActiveSheet Range PasteSpecial;
) 插入一行或一列 a ExcelApplication ActiveSheet Rows[ ] Insert; b ExcelApplication ActiveSheet Columns[ ] Insert;
) 删除一行或一列 a ExcelApplication ActiveSheet Rows[ ] Delete; b ExcelApplication ActiveSheet Columns[ ] Delete;
) 打印预览工作表 ExcelApplication ActiveSheet PrintPreview;
) 打印输出工作表 ExcelApplication ActiveSheet PrintOut;
) 工作表保存 if not ExcelApplication ActiveWorkBook Saved then ExcelApplication ActiveSheet PrintPreview;
) 工作表另存为 ExcelApplication SaveAs( C:\\Excel\\Demo xls );
) 放弃存盘 ExcelApplication ActiveWorkBook Saved := True;
) 关闭工作簿 ExcelApplication WorkBooks Close;
) 退出 Excel ExcelApplication Quit; ExcelApplication Disconnect;
三 使用Delphi 控制Excle二维图 在Form中分别放入ExcelApplication ExcelWorkbook和ExcelWorksheet var asheet achart range:variant;
)选择当第一个工作薄第一个工作表 asheet :=ExcelApplication Workbooks[ ] Worksheets[ ];
)增加一个二维图 achart:=asheet chartobjects add( );
)选择二维图的形态 achart chart charttype:= ;
)给二维图赋值 series:=achart chart seriescollection; range:=sheet !r c :r c ; series add(range true); )加上二维图的标题 achart Chart HasTitle:=True; achart Chart ChartTitle Characters Text:= Excle二维图
)改变二维图的标题字体大小 achart Chart ChartTitle Font size:= ;
)给二维图加下标说明 achart Chart Axes(xlCategory xlPrimary) HasTitle := True; achart Chart Axes(xlCategory xlPrimary) AxisTitle Characters Text := 下标说明 ;
)给二维图加左标说明 achart Chart Axes(xlValue xlPrimary) HasTitle := True; achart Chart Axes(xlValue xlPrimary) AxisTitle Characters Text := 左标说明 ;
)给二维图加右标说明 achart Chart Axes(xlValue xlSecondary) HasTitle := True; achart Chart Axes(xlValue xlSecondary) AxisTitle Characters Text := 右标说明 ;
)改变二维图的显示区大小 achart Chart PlotArea Left := ; achart Chart PlotArea Width := ; achart Chart PlotArea Height := ;
lishixinzhi/Article/program/Delphi/201311/25063
用Delphi将数据导入到Excel并控制Excel
1、 直接使用Delphi自带的组件:在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
2、动态创建Excel文件:首先创建 Excel 对象,使用ComObj,Excel2000:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( \'Excel.Application\' );
二、导入数据:在程序中,我们可以将查询到的数据(SQL、Access、)导入到Excel中。例如:用Adoquery查询Access中的数据:
1、先查到所需的数据;
2、导入:i:=1;
Adoquery.First;
while not Adoquery.Eof do
Begin
ExcelApp.WorkSheets[1].Cells[i,1].Value := i;//添加序号的值
ExcelApp.WorkSheets[1].Cells[i,2].Value := Adoquery.FieldByName(\'cp_name\').AsString;
……
Inc(i);
Adoquery.Next;
End;
当然也可以把Adotable、Adoquery、Table、Query等组件的数据导入到Excel中。
三、Excel的处理:如果在你已知Excel格式的情况下,可以控制Excel,如下:
1、 显示当前窗口:ExcelApp.Visible := True;
2、 更改 Excel 标题栏:ExcelApp.Caption := \'标题内容\';
3、 添加新工作簿:ExcelApp.WorkBooks.Add;
4、 设置第2个工作表为活动工作表:ExcelApp.WorkSheets[2].Activate;
5、 给单元格赋值:ExcelApp.Cells[1,1].Value := \'第一行第一列\';
6、 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;
7、 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
8、文字水平居中:Excelid.worksheets[1].Rows[1].HorizontalAlignment := $FFFFEFF4; 上面的文字如果不指定行坐标,那么就会设置所有行数据居中显示。
9、 插入一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Insert;
b. ExcelApp.ActiveSheet.Columns[1].Insert;
10、 删除一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Delete;
b. ExcelApp.ActiveSheet.Columns[1].Delete;
11、合并单元格:ExcelApp.worksheets[1].range[A1:F8\'].Merge(abc);注:要声明变量abc: Variant;
12、竖行显示文字:ExcelApp.worksheets[1].Cells.Item[1,1].Orientation:= xlVertical;
13、单元格加边线:ExcelApp.worksheets[1].Range[A1:F8].Borders.LineStyle := 1;
14、在第8行之前插入分页符:ExcelApp.WorkSheets[1].Rows[8].PageBreak := 1;
15、在第4列之前删除分页符:ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;
16、指定边框线宽度:ExcelApp.ActiveSheet.Range[ \'B3:D4\' ].Borders[2].Weight := 3;
1-左 2-右 3-顶 4-底 5-斜( \\ ) 6-斜( / )
17、拷贝操作:a.拷贝整个工作表:ExcelApplication1.ActiveSheet.Used.Range.Copy;
b.拷贝指定区域:ExcelApplication1.ActiveSheet.Range[ \'A1:E2\' ].Copy;
c.从A1位置开始粘贴:ExcelApplication1.ActiveSheet.Range.[ \'A1\' ].PasteSpecial;
d.从文件尾部开始粘贴:ExcelApplication1.ActiveSheet.Range.PasteSpecial;
18、清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
19、工作表保存:if not ExcelApp.ActiveWorkBook.Saved then
ExcelApp.ActiveSheet.PrintPreview;
20、工作表另存为:ExcelApp.SaveAs( \'C:\\Excel\\Demo1.xls\' );
21、放弃存盘:ExcelApp.ActiveWorkBook.Saved := True;
22、关闭工作簿:ExcelApp.WorkBooks.Close;
23、退出 Excel:ExcelApp.Quit;
下面是有关打印页面控制的语句:
24、设置第一行字体属性:ExcelApp.ActiveSheet.Rows[1].Font.Name := \'隶书\';
ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;
ExcelApp.ActiveSheet.Rows[1].Font.size:=10;
25、进行页面设置:a.页眉:ExcelApp.ActiveSheet.PageSetup.CenterHeader := \'报表演示\';
b.页脚:ExcelApp.ActiveSheet.PageSetup.CenterFooter := \'共&N页 第&P页\';
c.页眉到顶端边距2cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
d.页脚到底端边距3cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
e.顶边距2cm:ExcelApp.ActiveSheet.PageSetup.TopMargin := 2/0.035;
f.底边距2cm:ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
g.左边距2cm:ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
h.右边距2cm:ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035;
i.页面水平居中:ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
j.页面垂直居中:ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
k.打印单元格网线:ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;
26、打印预览工作表:ExcelApp.ActiveSheet.PrintPreview;
27、打印输出工作表:ExcelApp.ActiveSheet.PrintOut;
对Excel的其他控制:
28、excel的多单元格合计功能:ExcelApp..Cells[ARow, ACol].Formula
:= \'= SUM($+IntToStr(BeginRow) +:$ + IntToStr(EndRow) +\');
注:声明变量ARow, ACol: Integer;
29、打开已经存在的Excel文件:
注:在数据倒入Excel时不要边导入边修改,这样会使倒入到Excel的时间加长,一般最好是在倒入完数据后再调Excel的格式(例如页边距、单元个属性、文字属性)。
以上是关于Delphi控制Excel2000心得的主要内容,如果未能解决你的问题,请参考以下文章
请问如何用DELPHI控制excel的格式(比如第一列的宽度,第五行的高度),以
怎样用DELPHI控制EXCEL中某一单元格的某一边框是不是显示