请问:如何将EXCEL文件的某个工作表另存为其他文件,谢谢

解决方案 »

  1.   

    Excelapp.ActiveWorkBook.Saved:=false;
      excelapp.activeworkbook.saveas;
      

  2.   

    to zdcnow(磁效应)
       好像不行
      

  3.   

    存为access数据库:
    procedure ExportToExcel(Dataset:TDataset);
    var
        Range,WorkBook,Sheet,Excel:variant;
        CurCol,col,row:integer;
        FrmWait:TFrmWait;
    begin
     Excel:=CreateOleObject('Excel.Application');
     FrmWait:=TFrmWait.Create(application);
     try
         FrmWait.Show;
    //     Excel.visible:=true;
         Application.ProcessMessages;
         Excel.DisplayAlerts:=false;
         Excel.WorkBooks.Add;
         WorkBook:=Excel.WorkBooks[1];
         Sheet := WorkBook.WorkSheets[1];
         CurCol:=0;
         Row:=4; //从第四行,第二列开始输出
         for col:=1 to DataSet.FieldCount do //输出标题
            if DataSet.Fields[Col-1].Visible then
             begin
               Sheet.Cells[Row,CurCol+2]:=DataSet.Fields[Col-1].DisplayLabel;
               inc(CurCol);
             end;
         inc(Row); //数据从第五行开始输出     DataSet.DisableControls;
         FrmWait.ProgressBar1.Max:=TDataQuery(DataSet).FilterRows;
         FrmWait.Label2.Caption:=format('估计用时:%f 秒',[FrmWait.ProgressBar1.Max/40]);
         DataSet.First;
         while not Dataset.Eof do
           begin
             CurCol:=0;
             for Col:=1 to DataSet.FieldCount do
               if DataSet.Fields[Col-1].Visible then
                 begin
                   Sheet.Cells[Row,CurCol+2]:=DataSet.Fields[Col-1].DisplayText;
                   inc(CurCol);
                 end;
             DataSet.Next;
             inc(Row);
             FrmWait.ProgressBar1.Position:=Row;
             FrmWait.Label2.Caption:=format('估计用时:%f 秒',[(FrmWait.ProgressBar1.Max-FrmWait.ProgressBar1.Position)/40]);
             if FrmWait.ConFirmQuit then
              if YesNoBox('确定要取消当前操作吗?') then
               begin
                 Dataset.EnableControls;
                 Excel.quit;
                 exit;
               end else FrmWait.ConFirmQuit:=false;
             Application.ProcessMessages;
           end;     Range:=Sheet.Range['1:65536'];
         Range.Verticalalignment:= -4108;//Center; //垂直中对齐
         //选择画表格线的范围
         Range:=Sheet.Range[Sheet.cells[4,2].Address+':'
                    +Sheet.cells[Row-1,CurCol+1].Address];
         Range.Borders.LineStyle:=1;
         Range.Font.Name:='宋体';  //设置字体和大小
         Range.Font.Size:=11;     Sheet.Cells.Columns.AutoFit; //自动调整列宽
         Excel.visible:=true;
    {     try
           Sheet.PrintPreView;
         finally
           Excel.quit;
         end;
    }
     finally
        FrmWait.Free;
        Dataset.EnableControls;
     end;
    end;
      

  4.   

    to cg1120(代码最优化-§朋友是第二个自我§) :
       应该有类似saveas的简单方法吧?
      

  5.   

    excelworksheet2.SaveAs('e:\txt\123.xls',XLEXCEL9795,'789');
    第二个参数为格式,第三个参数为密码。
      

  6.   

    excelworksheet2.SaveAs('e:\txt\123.xls',XLEXCEL9795,'789');
    第二个参数为格式,第三个参数为密码。
    不能直接存为access格式.