求一个从EXCEL导出为TXT的例子。并且需要TXT有固定的格式。谢谢!

解决方案 »

  1.   

    www.source520.com     免费免注册80G源码书籍下载
      

  2.   

    最快的方法就是使用ExpressQuantumGrid组件,用ExportGrid4ToText方法即可。
    ExportGrid4ToTEXT('d:\wang.txt',cxGrid1,True,True); 
      

  3.   

    procedure TMSupplyExcel.BitBtn1Click(Sender: TObject);
    begin
      MDM.SEDSource.DataSet:=MDM.SEQry;
      with MDM.SEQry do begin
        Close;
        SQL.Clear;
        SQL.Add('select * from SupplyMessage where 供货商代码='''+E1.Text+'''');
        Open;
      end;
      if MDM.SEQry.RecordCount=0 then
        MessageDlg('没有要查询的供货商资料!',mtInformation,[mbOK],0)
      else begin
        MDM.SEDSet.Active:=false;
        MDM.SEDSet.CommandText:='select * from SupplyMessage where 供货商代码='''+trim(E1.Text)+'''';
        Try
    //-------------------打开数据集,当前表格显示数据库表的数据-------------------//
          MDM.SEDSource.DataSet:=MDM.SEDSet;
          if not MDM.SEDSet.Active then
            MDM.SEDSet.Active:=True;
        Except
          MessageDlg('打开数据库失败!',mtInformation,[mbOK],0);
        end;
      end;
    end;procedure TMSupplyExcel.BitBtn2Click(Sender: TObject);
    begin
      if MessageDlg('导出供货商基本资料?',mtInformation,[mbYes,mbNo],0)=mrYes  then begin
        BitBtn2.Enabled:=false;
        if MDM.SEConnection2.Connected then
          MDM.SEConnection2.Close;
        WriteExcel(MDM.SEDSet,'SupplyMessage','供货商基本资料');
        BitBtn2.Enabled:=true;
      end;
    end;//将数据库表的数据导出到指定的Excel文件中
    procedure TMSupplyExcel.WriteExcel(Ads: TADODataSet; sName, Title: string);
    var
      //声明一个Excel程序对象
      ExcelApplication1: TExcelApplication;
      //声明一个Excel工作簿对象
      ExcelWorkbook1: TExcelWorkbook;
      //声明一个Excel工作表对象
      ExcelWorksheet1: TExcelWorksheet;
      //定义导出的Excel文件的文件名
      filename,OutFilePath: string;
      i, j: integer; 
    begin
      try
        //创建一个Excel程序对象
        ExcelApplication1 := TExcelApplication.Create(Application);
        //创建一个Excel工作簿对象
        ExcelWorkbook1 := TExcelWorkbook.Create(Application);
        //创建一个Excel工作表对象
        ExcelWorksheet1 := TExcelWorksheet.Create(Application);
        //连接Excel程序对象
        ExcelApplication1.Connect;
      except
        Application.Messagebox('Excel没有安装','Hello',MB_ICONERROR + mb_Ok);
        Exit;
      end;
      try
        //在该Excel程序中增加一个空的工作簿
        ExcelApplication1.Workbooks.Add(EmptyParam, 0);
        //将ExcelWorkbook1对象与该空的工作簿连接
        ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
        //将ExcelWorksheet1对象与该空的工作簿的第一个工作表连接
        ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
        //取第一条数据集的记录
        Ads.First;
        //添加记录的各个字段名
        for j := 0 to Ads.Fields.Count - 1 do
        begin
          ExcelWorksheet1.Cells.item[3, j + 1] := Ads.Fields[j].DisplayLabel;
          ExcelWorksheet1.Cells.item[3, j + 1].font.size := '10';
        end;
        //循环不断往工作表中添加数据集的记录值
        for i := 4 to Ads.RecordCount + 3 do
        begin
          for j := 0 to Ads.Fields.Count - 1 do
          begin
            ExcelWorksheet1.Cells.item[i, j + 1] :=Ads.Fields[j].Asstring;
            ExcelWorksheet1.Cells.item[i, j + 1].font.size :='10';
          end;
          Ads.Next;
        end;
        //调整单元格的高度和宽度
        ExcelWorksheet1.Columns.AutoFit;
        //在工作表的第一行添加标题
        ExcelWorksheet1.Cells.item[1, 2] := Title;
        ExcelWorksheet1.Cells.Item[1, 2].font.size :='14';
        //保存该Excel文件
        if SaveDialog1.Execute then
        OutFilePath:=SaveDialog1.FileName;
        fileName:=concat(OutFilePath,'.xls');
        ExcelWorksheet1.SaveAs(filename);
        //显示导出成功
        Application.Messagebox(pchar('数据成功导出'+filename),'Hello',mb_Ok);
      finally
        //断开Excel程序对象
        ExcelApplication1.Disconnect;
        //退出Excel程序对象
        ExcelApplication1.Quit;
        //释放Excel程序对象
        ExcelApplication1.Free;
        //释放Excel工作簿对象
        ExcelWorksheet1.Free;
        //释放Excel工作表对象
        ExcelWorkbook1.Free;
      end;
    end;