Delphi对Excel文件的操作(1)——保存

//保存数据到文件
//path:文件所在路径
//data:待保存的数据
//SheetName:Excel表单的名字
function SaveToExcel(path:string;data:Variant;SheetName:string):boolean;
var
flag:boolean;
temp:integer;
i:Integer;
index:Integer;
MsExcel, MsExcelWorkBook, MsExcelWorkSheet: Variant;
begin
Result := True;  //可最后在考虑
flag := false;      //判断是否会有重名表单
  try
    MsExcel := CreateOleObject('Excel.Application');
    try
      MsExcelWorkBook := MsExcel.Workbooks.Open (path);
      try
        //先判断当前是否已存在同名表单
        for i := 1 to MsExcel.Sheets.Count do
        begin
          if (sheetname = MsExcel.Sheets[i].Name) then
          begin
            temp := i;
            if(messagedlg('已存在,是否修改?',mtwarning,[mbYes,mbNo],0)=1) then     //mbYes=0 ,mbNo=1
            begin
              result := false;
              exit;
            end
            else
            begin
              flag:=true;
            end;
          end;
        end;

        if flag then       //修改已经存在的表单数据,需要激活该表单
        begin
          MsExcel.WorkSheets[Temp].Activate;
          MsExcelWorkSheet := MsExcel.Worksheets.Item[temp];
          MsExcelWorkSheet.Name:=MsExcel.Sheets[temp].Name;
        end
        else                //创建新的表单
        begin
          MsExcelWorkBook.WorkSheets.Add;
          MsExcel.WorkSheets[MsExcel.Workbooks.Count].Activate;
          MsExcelWorkSheet := MsExcel.Worksheets.Item[MsExcel.Workbooks.Count];
          MsExcelWorkSheet.Name:=sheetname;
        end;

        MsExcelWorkSheet.Cells.item[1,1] := '';         //excel数据是先行后列
        //MsExcelWorkSheet.Columns[1].ColumnWidth := 120;       //设置例宽
        MsExcelWorkSheet.Cells.item[1,2] := '';
        MsExcelWorkSheet.Cells.item[1,3] := '';

        MsExcelWorkSheet.Cells.item[2,1] := '';
        MsExcelWorkSheet.Cells.item[2,2] := data[1,0];         //存入数据
        MsExcelWorkSheet.Cells.item[2,3] := data[14,0];

        MsExcel.DisplayAlerts:=false;              //不将该Excel表显示在屏幕上
        MsExcel.ActiveWorkBook.Save;          //保存Excel
      finally
        MsExcel.WorkBooks.Close;              //关闭Excel
      end;
    finally
      MsExcel.Quit;                  
      MsExcel := Unassigned;
    end;
  except
    ShowMessage('保存文件失败');
    result:= false;
  end;

end;

你可能感兴趣的:(Delphi)