如何通过DELPHI操作EXCEL,就如划线、合并、字体等EXCEL里的许多菜单所具有的功能?(0分)

  • 主题发起人 主题发起人 dzl19
  • 开始时间 开始时间
D

dzl19

Unregistered / Unconfirmed
GUEST, unregistred user!
如何通过DELPHI操作EXCEL,就如划线、合并、字体等EXCEL里的许多菜单所具有的功能?[?]
 
一、调用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;
文字垂直居中:Excelid.worksheets[1].Rows[1].VerticalAlignment :=
$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文件: ExcelApplication1.Workbooks.Open (c:/a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
 
一个问题是,如何设置单元格的对齐和文本格式或数字个数以及数字的位数等详细内容?
EXCEL好多细的功能哦!
 
还有好的方法吗?
 
继续问:

一个问题是,如何设置单元格的对齐和文本格式或数字个数以及数字的位数等详细内容?
EXCEL好多细的功能哦!
 
一个问题是,如何设置单元格的对齐和文本格式或数字个数以及数字的位数等详细内容?
EXCEL好多细的功能哦!
一个问题是,如何设置单元格的对齐和文本格式或数字个数以及数字的位数等详细内容?
EXCEL好多细的功能哦!
 
ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;执行会出错,怪了,
要怎么设置列宽。
 
用宏好了,先把操作步骤用宏记录下来,再把宏换成delphi语言就可以了~~~
 
maxtool,我就是不懂如何转化啊1
 

Similar threads

D
回复
0
查看
930
DelphiTeacher的专栏
D
D
回复
0
查看
871
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部