我现在要做一个程序,要求由用户操作Excel 文件,在同一界面下再对用户的数据进行加工,生成新的sheet,真不知道该怎么办了:(用delphi自带的demo方法不行,因为自己的程序和Excel等OLE是分开的,我要求OLE打开到自己的程序界面里。用下面的方法一不能由用户在Excel界面下操作文件,也不行 :(
用OlcContainer又不知道该怎样给Excel文件插入内容 :(
方法一:
procedure TForm1.Button1Click(Sender: TObject); var eclApp,WorkBook:Variant; //声明为OLE Automation 对象 xlsFileName:string;begin xlsFileName:='ex.xls'; try //创建OLE对象Excel Application与 WorkBook eclApp:=CreateOleObject('Excel.Application'); WorkBook:=CreateOleobject('Excel.Sheet'); except ShowMessage('您的机器里未安装Microsoft Excel。'); Exit; end; try ShowMessage('下面演示:新建一个XLS文件,并写入数据,最后关闭它。'); workBook:=eclApp.workBooks.Add; eclApp.Cells(1 , 1):='字符型'; eclApp.Cells(2 , 1):='Excel文件'; eclApp.Cells(1 , 2):='Money型'; eclApp.Cells(2 , 2):=10.01; eclApp.Cells(1 , 3):='日期型';eclApp.Cells(2 , 3):=Date; WorkBook.saveas(xlsFileName); WorkBook.close; ShowMessage('下面演示:打开刚创建的XLS文件,并修改其中的内容,然后,由用户决定是否保存。'); WorkBook:=eclApp.workBooks.Open(xlsFileName); eclApp.Cells(2 , 1):='Excel文件类型'; if MessageDlg(xlsFileName+'文件已被修改,是否保存?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then WorkBook.save else workBook.Saved := True; //放弃修改 WorkBook.Close; eclApp.Quit; //退出Excel Application //释放VARIANT变量 eclApp:=Unassigned; except ShowMessage('不能正确操作Excel文件。可能是该文件已被其他程序打开,或系统错误。'); WorkBook.close; eclApp.Quit; //释放VARIANT变量 eclApp:=Unassigned; end;
用OlcContainer又不知道该怎样给Excel文件插入内容 :(
方法一:
procedure TForm1.Button1Click(Sender: TObject); var eclApp,WorkBook:Variant; //声明为OLE Automation 对象 xlsFileName:string;begin xlsFileName:='ex.xls'; try //创建OLE对象Excel Application与 WorkBook eclApp:=CreateOleObject('Excel.Application'); WorkBook:=CreateOleobject('Excel.Sheet'); except ShowMessage('您的机器里未安装Microsoft Excel。'); Exit; end; try ShowMessage('下面演示:新建一个XLS文件,并写入数据,最后关闭它。'); workBook:=eclApp.workBooks.Add; eclApp.Cells(1 , 1):='字符型'; eclApp.Cells(2 , 1):='Excel文件'; eclApp.Cells(1 , 2):='Money型'; eclApp.Cells(2 , 2):=10.01; eclApp.Cells(1 , 3):='日期型';eclApp.Cells(2 , 3):=Date; WorkBook.saveas(xlsFileName); WorkBook.close; ShowMessage('下面演示:打开刚创建的XLS文件,并修改其中的内容,然后,由用户决定是否保存。'); WorkBook:=eclApp.workBooks.Open(xlsFileName); eclApp.Cells(2 , 1):='Excel文件类型'; if MessageDlg(xlsFileName+'文件已被修改,是否保存?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then WorkBook.save else workBook.Saved := True; //放弃修改 WorkBook.Close; eclApp.Quit; //退出Excel Application //释放VARIANT变量 eclApp:=Unassigned; except ShowMessage('不能正确操作Excel文件。可能是该文件已被其他程序打开,或系统错误。'); WorkBook.close; eclApp.Quit; //释放VARIANT变量 eclApp:=Unassigned; end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货