我的记录结构:ID 性名 性别 地址 ID2导出到Excel的结构:性名 性别 地址 年龄 备注要一条一条的导入!!!请各位高手详细说明一下,我是菜菜谢谢了

解决方案 »

  1.   

    先用query把要插入的数据选出来,放个支持excel的控件,(ExpressSpreadSheet或者XLGrid),然后
    循环数据集,再循环里写上Cell[XXX] := XXXField.Value就可以了,循环结束后可以写上导出excel的代码或者更省事直接用个cxGrid,直接一句话导出成excel看你自己了
      

  2.   

    不能用query我是用DBGird显示的,用户可以多选记录,我再把用户选了的记录导出,所以不知道怎么作,郁闷。。
      

  3.   

    procedure TIMCSFormTop.ExportToExcel(const sExcelFileName: string;
      const cxgvMain: TcxGridDBTableView);
    var
      eclApp,WorkBook: Variant;
      nRowCount, nColumnCount, i,j,RowIND: integer;
    begin
      try
        eclApp := CreateOleObject('Excel.Application');
        WorkBook := CreateOleObject('Excel.Sheet');
        WorkBook := eclApp.WorkBooks.add;    nColumnCount := cxgvMain.ColumnCount;
        for i := 0 to nColumnCount - 1 do
          eclApp.Cells(1,i + 1) := cxgvMain.Columns[i].Caption;    RowIND := 0;
        with cxgvMain.ViewData do
        begin
          nRowCount := RowCount;
          for i := 0 to nRowCount - 1 do
          begin
            if cxgvMain.ViewData.Rows[i].IsData then
            begin
              for j := 1 to nColumnCount do
                eclApp.Cells(RowIND + 2,j) :=Rows[i].DisplayTexts[j - 1];
              RowIND := RowIND + 1 ;
            end;
          end;
        end;
        WorkBook.Saveas(sExcelFileName);
        WorkBook.close;
        Showmessage('Save Success!');
      except
        ShowMessage('Save to Excel Failed!');
      end;以上程序是將cxgrid的内容輸出到excel中,你將那些Rows[i].DisplayTexts[j - 1]改爲dbgrid的相關設定就差不多了,自己再測試一下
      

  4.   

    excelworksheet1.Cells.Item[zongshu,1].FormulaR1C1 :=xuhao;
                       excelworksheet1.Cells.Item[zongshu,2].FormulaR1C1 :=dbgrid1.Columns.Items[0].Field.asvariant;
                       excelworksheet1.Cells.Item[zongshu,3].FormulaR1C1 :=dbgrid1.Columns.Items[1].Field.asvariant;
                       excelworksheet1.Cells.Item[zongshu,4].FormulaR1C1 :='动态';     //计量方式
                       excelworksheet1.Cells.Item[zongshu,5].FormulaR1C1 :='流量计';
                       excelworksheet1.Cells.Item[zongshu,6].FormulaR1C1 :=dbgrid1.Columns.Items[2].Field.asvariant;
                       excelworksheet1.Cells.Item[zongshu,7].FormulaR1C1 :=dbgrid1.Columns.Items[3].Field.asvariant;
                       excelworksheet1.Cells.Item[zongshu,8].FormulaR1C1 :=dbgrid1.Columns.Items[4].Field.asvariant;
                       excelworksheet1.Cells.Item[zongshu,9].FormulaR1C1 :=dbgrid1.Columns.Items[5].Field.asvariant;
                       excelworksheet1.Cells.Item[zongshu,10].FormulaR1C1 :=dbgrid1.Columns.Items[6].Field.asvariant;
                       excelworksheet1.Cells.Item[zongshu,11].FormulaR1C1 :=dbgrid1.Columns.Items[7].Field.asvariant;
                       excelworksheet1.Cells.Item[zongshu,12].FormulaR1C1 :=dbgrid1.Columns.Items[8].Field.asvariant;
    这是我以前写的,你可以参考,
      

  5.   

    excelworksheet1.Cells.Item[1,1].FormulaR1C1 :=xuhao;  //单元格[1,1]的值为xuhao
    excelworksheet1.Cells.Item[1,2].FormulaR1C1 :=dbgrid1.Columns.Items[0].Field.asvariant;
                                 //单元格[1,2]的值为dbgrid当前记录的第一列值
    excelworksheet1.Cells.Item[1,3].FormulaR1C1 :=dbgrid1.Columns.Items[1].Field.asvariant;
    excelworksheet1.Cells.Item[1,4].FormulaR1C1 :='动态';     //计量方式excelworksheet1.Cells.Item[1,5].FormulaR1C1 :='流量计';
    excelworksheet1.Cells.Item[1,6].FormulaR1C1 :=dbgrid1.Columns.Items[2].Field.asvariant;
    excelworksheet1.Cells.Item[1,7].FormulaR1C1 :=dbgrid1.Columns.Items[3].Field.asvariant;
    excelworksheet1.Cells.Item[1,8].FormulaR1C1 :=dbgrid1.Columns.Items[4].Field.asvariant;
    excelworksheet1.Cells.Item[1,9].FormulaR1C1 :=dbgrid1.Columns.Items[5].Field.asvariant;
    excelworksheet1.Cells.Item[1,10].FormulaR1C1 :=dbgrid1.Columns.Items[6].Field.asvariant;
    excelworksheet1.Cells.Item[1,11].FormulaR1C1 :=dbgrid1.Columns.Items[7].Field.asvariant;
    excelworksheet1.Cells.Item[1,12].FormulaR1C1 :=dbgrid1.Columns.Items[8].Field.asvariant;
    前两句给你注释了,剩下的基本一样,你应该能看懂了吧
      

  6.   

    写完一条记录,让dbgrid走到下一条记录,再循环“写excel”语句,就可以把多条都写到excel里了
      

  7.   

    xiaonanw(小南)非常感谢我慢慢看一下。