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的相關設定就差不多了,自己再測試一下
循环数据集,再循环里写上Cell[XXX] := XXXField.Value就可以了,循环结束后可以写上导出excel的代码或者更省事直接用个cxGrid,直接一句话导出成excel看你自己了
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的相關設定就差不多了,自己再測試一下
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;
这是我以前写的,你可以参考,
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;
前两句给你注释了,剩下的基本一样,你应该能看懂了吧