各位大侠朋友好:
我刚开始学习delphi6,用的是sql server2000数据库,由于书上没有讲解关于调用excel的部分,因此一直不懂这一部分。我前后花了接近300分也没有一个朋友给我讲解清楚。希望各位朋友能否给我讲解一下(加写注释即可)。我做了一点,给指正一下,分不够我可以再加。谢谢!
我在窗体上放置了一个button1,从severs组件中取了ExcelApplication1、ExcelWorkbook1、ExcelWorkSheet1三个控件,然后在桌面上建立一个“新建文件夹”,其中做了一个ceshi.xls(excel表),然后写代码如下:procedure TfmBJForm.DyButtonClick(Sender: TObject);
begin
ExcelApplication1.Connect;
ExcelApplication1.Visible[0]:=true;
ExcelApplication1.Caption := '补退管理程序';
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add
(EmptyParam,0));//能否讲解一下这句的意思
//(EmptyParam,0)]是什么意思? //打开已存在的工作簿:
ExcelApplication1.Workbooks.Open ('C:\windows\desktop\新建文件夹
ceshi.xls' ,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam, 0);
//能否解释一下此处为什么有那么多的“EmptyParam”,什么意思? ExcelApplication1.Cells[1,4].Value := '?';
//疑问1:运行时到此停止,"cells"有问题吗?
//疑问2:如果将[1,4]去掉,则将整个区域全部填满“?”
//疑问3:填充时出现两个excel(一个是book1、一个是ceshi.xls)
end;
我刚开始学习delphi6,用的是sql server2000数据库,由于书上没有讲解关于调用excel的部分,因此一直不懂这一部分。我前后花了接近300分也没有一个朋友给我讲解清楚。希望各位朋友能否给我讲解一下(加写注释即可)。我做了一点,给指正一下,分不够我可以再加。谢谢!
我在窗体上放置了一个button1,从severs组件中取了ExcelApplication1、ExcelWorkbook1、ExcelWorkSheet1三个控件,然后在桌面上建立一个“新建文件夹”,其中做了一个ceshi.xls(excel表),然后写代码如下:procedure TfmBJForm.DyButtonClick(Sender: TObject);
begin
ExcelApplication1.Connect;
ExcelApplication1.Visible[0]:=true;
ExcelApplication1.Caption := '补退管理程序';
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add
(EmptyParam,0));//能否讲解一下这句的意思
//(EmptyParam,0)]是什么意思? //打开已存在的工作簿:
ExcelApplication1.Workbooks.Open ('C:\windows\desktop\新建文件夹
ceshi.xls' ,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam, 0);
//能否解释一下此处为什么有那么多的“EmptyParam”,什么意思? ExcelApplication1.Cells[1,4].Value := '?';
//疑问1:运行时到此停止,"cells"有问题吗?
//疑问2:如果将[1,4]去掉,则将整个区域全部填满“?”
//疑问3:填充时出现两个excel(一个是book1、一个是ceshi.xls)
end;
(EmptyParam,0));
如果没有这句话没有表格(没有打开真正的电子表格)。
下边的市函数的要求open函数的参数,且参数的类型都是olevariant
procedure Excel_copyCells;
var
sheet,XLApp,workbook,myRange1 ,myRange2: variant;
begin
try
//创建对象
XLApp:=createOleObject('Excel.Application');
XLApp.displayAlerts:=true;
XLApp.ScreenUpdating:=true;
XLApp.visible:=true;
XLApp.WorkBooks.Add('D:\Test.xls');
workbook := XLApp.workbooks[1];
sheet:=workbook.worksheets[1];
myRange1:=sheet.Range[sheet.cells[39,1],sheet.cells[79,16]];
myRange2:=sheet.Range[sheet.cells[80,1],sheet.cells[120,16]];
myRange1.Copy(myRange2) ;
finally
if not VarIsEmpty(XLApp) then begin
XLApp.displayAlerts:=false;
XLApp.ScreenUpdating:=true;
XLApp.quit;
end;
end;
end;
procedure Excel_copyCells是一个事件吗?窗体上如何设置?我用控件不能实现吗?