delphiexcel.docx
- 文档编号:23088242
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:11
- 大小:17.79KB
delphiexcel.docx
《delphiexcel.docx》由会员分享,可在线阅读,更多相关《delphiexcel.docx(11页珍藏版)》请在冰豆网上搜索。
delphiexcel
DELPHI操作excel(转)
(一)使用动态创建的方法
首先创建Excel对象,使用ComObj:
varExcelApp:
Variant;
ExcelApp:
=CreateOleObject(''Excel.Application'');
1)显示当前窗口:
ExcelApp.Visible:
=True;
2)更改Excel标题栏:
ExcelApp.Caption:
=''应用程序调用MicrosoftExcel'';
3)添加新工作簿:
ExcelApp.WorkBooks.Add;
4)打开已存在的工作簿:
ExcelApp.WorkBooks.Open(''C:
\Excel\Demo.xls'');
5)设置第2个工作表为活动工作表:
ExcelApp.WorkSheets[2].Activate;
或
ExcelApp.WorksSheets[''Sheet2''].Activate;
6)给单元格赋值:
ExcelApp.Cells[1,4].Value:
=''第一行第四列'';
7)设置指定列的宽度(单位:
字符个数),以第一列为例:
ExcelApp.ActiveSheet.Columns[1].ColumnsWidth:
=5;
8)设置指定行的高度(单位:
磅)(1磅=0.035厘米),以第二行为例:
ExcelApp.ActiveSheet.Rows[2].RowHeight:
=1/0.035;//1厘米
9)在第8行之前插入分页符:
ExcelApp.WorkSheets[1].Rows[8].PageBreak:
=1;
10)在第8列之前删除分页符:
ExcelApp.ActiveSheet.Columns[4].PageBreak:
=0;
11)指定边框线宽度:
ExcelApp.ActiveSheet.Range[''B3:
D4''].Borders[2].Weight:
=3;
1-左2-右3-顶4-底5-斜(\)6-斜(/)
12)清除第一行第四列单元格公式:
ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
13)设置第一行字体属性:
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;
14)进行页面设置:
a.页眉:
ExcelApp.ActiveSheet.PageSetup.CenterHeader:
=''报表演示'';
b.页脚:
ExcelApp.ActiveSheet.PageSetup.CenterFooter:
=''第&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;
15)拷贝操作:
a.拷贝整个工作表:
ExcelApp.ActiveSheet.Used.Range.Copy;
b.拷贝指定区域:
ExcelApp.ActiveSheet.Range[''A1:
E2''].Copy;
c.从A1位置开始粘贴:
ExcelApp.ActiveSheet.Range.[''A1''].PasteSpecial;
d.从文件尾部开始粘贴:
ExcelApp.ActiveSheet.Range.PasteSpecial;
16)插入一行或一列:
a.ExcelApp.ActiveSheet.Rows[2].Insert;
b.ExcelApp.ActiveSheet.Columns[1].Insert;
17)删除一行或一列:
a.ExcelApp.ActiveSheet.Rows[2].Delete;
b.ExcelApp.ActiveSheet.Columns[1].Delete;
18)打印预览工作表:
ExcelApp.ActiveSheet.PrintPreview;
19)打印输出工作表:
ExcelApp.ActiveSheet.PrintOut;
20)工作表保存:
ifnotExcelApp.ActiveWorkBook.Savedthen
ExcelApp.ActiveSheet.PrintPreview;
ExcelApp.Activeworkbook.saveas(sFileName);
21)工作表另存为:
ExcelApp.SaveAs(''C:
\Excel\Demo1.xls'');
22)放弃存盘:
ExcelApp.ActiveWorkBook.Saved:
=True;
23)关闭工作簿:
ExcelApp.WorkBooks.Close;
24)退出Excel:
ExcelApp.Quit;
25)合并单元格
myexcel.Range[worksheet.cells[2, 3], worksheet.cells[2, 8]].MergeCells :
= true;
worksheet.cells(1,4):
='车辆加油日明细表';
(二)使用Delphi控件方法
在Form中分别放入ExcelApplication,ExcelWorkbook和ExcelWorksheet。
1)打开Excel
ExcelApplication1.Connect;
2)显示当前窗口:
ExcelApplication1.Visible[0]:
=True;
3)更改Excel标题栏:
ExcelApplication1.Caption:
=''应用程序调用MicrosoftExcel'';
4)添加新工作簿:
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
5)添加新工作表:
varTemp_Worksheet:
_WorkSheet;
begin
Temp_Worksheet:
=ExcelWorkbook1.
WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)as_WorkSheet;
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
End;
6)打开已存在的工作簿:
ExcelApplication1.Workbooks.Open(c:
\a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
7)设置第2个工作表为活动工作表:
ExcelApplication1.WorkSheets[2].Activate;或
ExcelApplication1.WorksSheets[''Sheet2''].Activate;
8)给单元格赋值:
ExcelApplication1.Cells[1,4].Value:
=''第一行第四列'';
9)设置指定列的宽度(单位:
字符个数),以第一列为例:
ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth:
=5;
10)设置指定行的高度(单位:
磅)(1磅=0.035厘米),以第二行为例:
ExcelApplication1.ActiveSheet.Rows[2].RowHeight:
=1/0.035;//1厘米
11)在第8行之前插入分页符:
ExcelApplication1.WorkSheets[1].Rows[8].PageBreak:
=1;
12)在第8列之前删除分页符:
ExcelApplication1.ActiveSheet.Columns[4].PageBreak:
=0;
13)指定边框线宽度:
ExcelApplication1.ActiveSheet.Range[''B3:
D4''].Borders[2].Weight:
=3;
1-左2-右3-顶4-底5-斜(\)6-斜(/)
14)清除第一行第四列单元格公式:
ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;
15)设置第一行字体属性:
ExcelApplication1.ActiveSheet.Rows[1].Font.Name:
=''隶书'';
ExcelApplication1.ActiveSheet.Rows[1].Font.Color:
=clBlue;
ExcelApplication1.ActiveSheet.Rows[1].Font.Bold:
=True;
ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine:
=True;
16)进行页面设置:
a.页眉:
ExcelApplication1.ActiveSheet.PageSetup.CenterHeader:
=''报表演示'';
b.页脚:
ExcelApplication1.ActiveSheet.PageSetup.CenterFooter:
=''第&P页'';
c.页眉到顶端边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin:
=2/0.035;
d.页脚到底端边距3cm:
ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin:
=3/0.035;
e.顶边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.TopMargin:
=2/0.035;
f.底边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.BottomMargin:
=2/0.035;
g.左边距2cm:
ExcelAppli
cation1.ActiveSheet.PageSetup.LeftMargin:
=2/0.035;
h.右边距2cm:
ExcelApplication1.ActiveSheet.PageSetup.RightMargin:
=2/0.035;
i.页面水平居中:
ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally:
=2/0.035;
j.页面垂直居中:
ExcelApplication1.ActiveSheet.PageSetup.CenterVertically:
=2/0.035;
k.打印单元格网线:
ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines:
=True;
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)插入一行或一列:
a.ExcelApplication1.ActiveSheet.Rows[2].Insert;
b.ExcelApplication1.ActiveSheet.Columns[1].Insert;
19)删除一行或一列:
a.ExcelApplication1.ActiveSheet.Rows[2].Delete;
b.ExcelApplication1.ActiveSheet.Columns[1].Delete;
20)打印预览工作表:
ExcelApplication1.ActiveSheet.PrintPreview;
21)打印输出工作表:
ExcelApplication1.ActiveSheet.PrintOut;
22)工作表保存:
ifnotExcelApplication1.ActiveWorkBook.Savedthen
ExcelApplication1.ActiveSheet.PrintPreview;
23)工作表另存为:
ExcelApplication1.SaveAs(''C:
\Excel\Demo1.xls'');
24)放弃存盘:
ExcelApplication1.ActiveWorkBook.Saved:
=True;
25)关闭工作簿:
ExcelApplication1.WorkBooks.Close;
26)退出Excel:
ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
(三)使用Delphi控制Excle二维图
在Form中分别放入ExcelApplication,ExcelWorkbook和ExcelWorksheet
varasheet1,achart,range:
variant;
1)选择当第一个工作薄第一个工作表
asheet1:
=ExcelApplication1.Workbooks[1].Worksheets[1];
2)增加一个二维图
achart:
=asheet1.chartobjects.add(100,100,200,200);
3)选择二维图的形态
achart.chart.charttype:
=4;
4)给二维图赋值
series:
=achart.chart.seriescollection;
range:
=sheet1!
r2c3:
r3c9;
series.add(range,true);
5)加上二维图的标题
achart.Chart.HasTitle:
=True;
achart.Chart.ChartTitle.Characters.Text:
=’Excle二维图’
6)改变二维图的标题字体大小
achart.Chart.ChartTitle.Font.size:
=6;
7)给二维图加下标说明
achart.Chart.Axes(xlCategory,xlPrimary).HasTitle:
=True;
achart.Chart.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text:
=''下标说明'';
8)给二维图加左标说明
achart.Chart.Axes(xlValue,xlPrimary).HasTitle:
=True;
achart.Chart.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text:
=''左标说明'';
9)给二维图加右标说明
achart.Chart.Axes(xlValue,xlSecondary).HasTitle:
=True;
achart.Chart.Axes(xlValue,xlSecondary).AxisTitle.Characters.Text:
=''右标说明'';
10)改变二维图的显示区大小
achart.Chart.PlotArea.Left:
=5;
achart.Chart.PlotArea.Width:
=223;
achart.Chart.PlotArea.Height:
=108;
11)给二维图坐标轴加上说明
achart.chart.seriescollection[1].NAME:
=''坐标轴说明'';
实例:
unitUnit47;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,DB,DBClient,OleServer,Excel2000,Buttons;
type
TForm47=class(TForm)
OpenDialog:
TOpenDialog;
QueryFlowExist:
TClientDataSet;
UpdateFlowPT:
TClientDataSet;
GroupBox1:
TGroupBox;
Button1:
TButton;
Memo1:
TMemo;
BitBtn1:
TBitBtn;
procedureButton1Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form47:
TForm47;
implementation
usesUnit1,ComObj;
{$R*.dfm}
procedureTForm47.Button1Click(Sender:
TObject);
var
MSExcel:
Variant;
i,n,m,len,alen,filelen:
Integer;
S,word,update_date,UPLOAD_DATE,OldfileStr,NewfileStr1,flag:
string;
F:
TextFile;
PT,STAGE,STEPNO,RECIPE,PROCESS,error_message,NewfileStr:
string;
begin
OpenDialog.Filter:
='*.XLS|*.XLS';
OpenDialog.DefaultExt:
='XLS';
if OpenDialog.Execute then
begin
try
MSExcel:
=CreateOLEObject('Excel.Application');
MSExcel.WorkBooks.Open(OpenDialog.FileName);
except
Memo1.Lines.Append('Failed!
!
!
');
end;
MSExcel.Visible:
=False;
Screen.Cursor:
=crSQLWait;
for i:
=2 to MSExcel.ActiveSheet.UsedRange.Rows.Count do
begin
//Edit2.Text:
=Edit2.Text+MSExcel.Cells[i,1].Value;
PT:
=MSExcel.Cells[i,1].Value;
STAGE:
=MSExcel.Cells[i,2].Value;
STEPNO:
=MSExcel.Cells[i,3].Value;
RECIPE:
=MSExcel.Cells[i,4].Value;
PROCESS:
=MSExcel.Cells[i,5].Value;
try
QueryFlowExist.close;
QueryFlowExist.FetchParams;
QueryFlowExist.Params.ParamByName('STAGE').AsString:
=STAGE;
QueryFlowExist.Params.ParamByName('STEPNO').AsString:
=STEPNO;
QueryFlowExist.Params.ParamByName('RECPID').AsString:
=RECIPE;
QueryFlowExist.Params.ParamByName('PROCESS').AsString:
=PROCESS;
QueryFlowExist.Open;
if QueryFlowExist.RecordCount>0then
begin
//ShowMessage('stage:
'+stage+';s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- delphiexcel