ole中保存execl的一个简单问题(50分)

  • 主题发起人 主题发起人 什么年代
  • 开始时间 开始时间

什么年代

Unregistered / Unconfirmed
GUEST, unregistred user!
有个ole控件
里面有execl文件(从数据库中生成的),现在保存成文件
v := CreateOleObject('EXCEL.Application');

v.Application.WorkBooks.Add;
OleContainer1.oleObjECt.ACTiveSheet.Cells.Copy;

v.apPLication.WOrkbooks[1].WorkSheets[1].Paste ;
v.Application.WorkBooks[1].SaveAs(sdSave.FileName);

v.quit;

这样只保存ole中激活的页面,我希望全部保存,如何循环(希望在我这个上面修改)。
并且保存的excel每个页面名称和ole中的也要一样。

如果用OleContainer1.SaveToFile;好像有问题
 
或者这样
ole控件中有个execl文件,有若干个sheet,怎样对这个old中ececl的sheet进行循环???
 
ep : TExcelApplication;

procedure TMyExcelReport.OpenReportFromFile(FileName:String);
begin
{
function Open(const Filename: WideString; 是否要更新连接: OleVariant; ReadOnly: OleVariant;
Format: OleVariant; Password: OleVariant; WriteResPassword: OleVariant;
IgnoreReadOnlyRecommended: OleVariant; Origin: OleVariant;
Delimiter: OleVariant; Editable: OleVariant; Notify: OleVariant;
Converter: OleVariant; AddToMru: OleVariant; lcid: Integer): ExcelWorkbook; safecall;
}
ep.Workbooks.Open(FileName,false,null,
null,null,null,
null,null,
null,null,null,
null,null,0);
end;

procedure TMyExcelReport.ExecuteReport;
var __i : Integer;
__we : _WorkSheet;
begin
for __i := 1 to ep.WorkSheets.count do begin
__we := ep.WorkSheets[__i] as _WorkSheet;
ExcelSheetReport(__we);
end;
end;
 
OleContainer1.SaveAsDocument();
这个可以保存,你试一试
 
for i := 1 to ep.WorkSheets.count do
begin
ep.WorkSheets.saveas('文件名');
 
var
excelapp,myworkbook,ExcelChart:variant;
i,j,k,l,row,col:integer;
txt_str,txt_strtemp:string;
fp : textfile;
b_sfbt : boolean;
file_name,jpg_nm : string;
begin
try
excelapp:=createoleobject('Excel.application');
myworkbook:=createoleobject('excel.sheet');
ExcelChart:=CreateOleObject('Excel.Chart');
except
application.MessageBox('无法打开EXECL文件,请确认已经安装EXECL。','',mb_ok+mb_iconstop);
exit;
end;

if trim(exl_name) <> '' then
begin
try
myworkbook:=excelApp.workBooks.Open(exl_name);
for l := 1 to myworkbook.sheets.count do
begin
 
后退
顶部