请问,怎样在DELPHI中将我查询的数据全部倒入到EXCEL中 在delphi中有一个batchmove控件可以用来转换。可以先生成一个临时的表,然后转换。destination,source,mode. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //一个函数, 吧dbgrid内容导出到excel procedure DBGridtoExcel(title:string;datetime:string;DBGrid:TDBGrid);var e:variant; i,j:integer; x1,x2,y1,y2:integer; rowcount,colcount:integer; columnwidth:array of integer; first,second,last:string;begin try e:=CreateOleObject('Excel.Application'); e.workbooks.add(); e.visible:=true; except showmessage('ÄúµÄ¼ÆËã»úÖÐδ°²×°MicroSoft Excel'); exit; end; e.ActiveWindow.DisplayGridlines:=false;//µÃµ½ÁÐÊý colcount:=DBGrid.Columns.Count ; setlength(columnwidth,colcount); for i:=low(columnwidth) to high(columnwidth) do columnwidth[i]:=0;//Ìîд±êÌâ e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].HorizontalAlignment := xlGeneral; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].VerticalAlignment := xlBottom; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].WrapText := False; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Orientation := 0; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].AddIndent := False; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].ShrinkToFit := False; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].MergeCells := True; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].HorizontalAlignment := xlCenter; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].VerticalAlignment := xlBottom; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Name := 'ºÚÌå'; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Size := 16; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Strikethrough := False; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Superscript := False; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Subscript := False; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.OutlineFont := False; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Shadow := False; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Underline := xlUnderlineStyleNone; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.ColorIndex := xlAutomatic; e.Workbooks[1].Sheets[1].Cells[2,1] := Title;//Ìîд±¨±íµ¥Î»,ʱ¼ä e.Workbooks[1].Sheets[1].Cells[4,1]:='±¨±íµ¥Î»:'; e.Workbooks[1].Sheets[1].Cells[4,4] :='±¨±íʱ¼ä:'+ DateTime;//Ìîд±íÍ· e.Workbooks[1].Sheets[1].Cells[5,1] :=DBGrid.Fields[0].DisplayName; columnwidth[0]:=length(DBGrid.Fields[0].DisplayName); for i:=2 to ColCount do begin e.Workbooks[1].Sheets[1].Cells[5,i] :=DBGrid.Fields[i-1].DisplayName; columnwidth[i-1]:=length(DBGrid.Fields[i-1].DisplayName); end;//ÌîдÊý¾Ý i:=1; DBGrid.DataSource.DataSet.First ; while not DBGrid.DataSource.DataSet.Eof do begin for j:=1 to ColCount do begin e.Workbooks[1].Sheets[1].Cells[5+i,j] := DBGrid.Fields[j-1].AsString; if columnwidth[j-1]<length(DBGrid.Fields[j-1].AsString) then columnwidth[j-1]:=length(DBGrid.Fields[j-1].AsString); end; DBGrid.DataSource.DataSet.Next; i:=i+1; end;//µ÷ÕûexcelÁпí¶È for i:=1 to colcount do e.Workbooks[1].Sheets[1].Columns[i].ColumnWidth:=columnwidth[i-1]; y1:=5; x1:=1; y2:=8+DBGrid.DataSource.DataSet.RecordCount-1; x2:=ColCount; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeTop].LineStyle := xlContinuous; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeTop].Weight := xlThin; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeTop].ColorIndex := xlAutomatic; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeBottom].LineStyle := xlContinuous; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeBottom].Weight := xlThin; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeBottom].ColorIndex := xlAutomatic; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeRight].LineStyle := xlContinuous; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeRight].Weight := xlThin; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeRight].ColorIndex := xlAutomatic; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeLeft].LineStyle := xlContinuous; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeLeft].Weight := xlThin; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeLeft].ColorIndex := xlAutomatic; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideVertical].LineStyle := xlContinuous; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideVertical].Weight := xlThin; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideVertical].ColorIndex := xlAutomatic; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideHorizontal].LineStyle := xlContinuous; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideHorizontal].Weight := xlThin; e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideHorizontal].ColorIndex := xlAutomatic;// e.visible:=true;// excel.DisplayAlerts:=true;//Í˳öʱ²»Ìáʾ// e.quit;end; Delphiers 中秋节快乐 FastReport 报表问题(客户要的急) 在这下面是cxGrid的统计功能,怎样在前面加个文字如:统计,还有怎样取得这些统计数据 XP下无法运行呀. 请问大家jndy的问题 急!!!!!!!!!!一个小问题,请指教!高分——100—— 关于ActiveX的数据类型的问题 高手请进,谁能突破上传文件大小的限制? 请教:怎样判断一个菜单是处于“打开”还是“关闭”的状态? 菜鸟送分系列之一:关于StringGrid 如何才能再次再次打开子窗口? 如何修改DLL中的默认图标
procedure DBGridtoExcel(title:string;datetime:string;DBGrid:TDBGrid);
var
e:variant;
i,j:integer;
x1,x2,y1,y2:integer;
rowcount,colcount:integer;
columnwidth:array of integer;
first,second,last:string;
begin
try
e:=CreateOleObject('Excel.Application');
e.workbooks.add();
e.visible:=true;
except
showmessage('ÄúµÄ¼ÆËã»úÖÐδ°²×°MicroSoft Excel');
exit;
end;
e.ActiveWindow.DisplayGridlines:=false;
//µÃµ½ÁÐÊý
colcount:=DBGrid.Columns.Count ;
setlength(columnwidth,colcount);
for i:=low(columnwidth) to high(columnwidth) do
columnwidth[i]:=0;//Ìîд±êÌâ
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].HorizontalAlignment := xlGeneral;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].VerticalAlignment := xlBottom;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].WrapText := False;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Orientation := 0;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].AddIndent := False;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].ShrinkToFit := False;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].MergeCells := True;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].HorizontalAlignment := xlCenter;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].VerticalAlignment := xlBottom;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Name := 'ºÚÌå';
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Size := 16;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Strikethrough := False;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Superscript := False;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Subscript := False;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.OutlineFont := False;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Shadow := False;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.Underline := xlUnderlineStyleNone;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[2,1],e.Workbooks[1].Sheets[1].Cells[2,ColCount]].Font.ColorIndex := xlAutomatic;
e.Workbooks[1].Sheets[1].Cells[2,1] := Title;
//Ìîд±¨±íµ¥Î»,ʱ¼ä
e.Workbooks[1].Sheets[1].Cells[4,1]:='±¨±íµ¥Î»:';
e.Workbooks[1].Sheets[1].Cells[4,4] :='±¨±íʱ¼ä:'+ DateTime;
//Ìîд±íÍ·
e.Workbooks[1].Sheets[1].Cells[5,1] :=DBGrid.Fields[0].DisplayName;
columnwidth[0]:=length(DBGrid.Fields[0].DisplayName);
for i:=2 to ColCount do
begin
e.Workbooks[1].Sheets[1].Cells[5,i] :=DBGrid.Fields[i-1].DisplayName;
columnwidth[i-1]:=length(DBGrid.Fields[i-1].DisplayName);
end;
//ÌîдÊý¾Ý
i:=1;
DBGrid.DataSource.DataSet.First ;
while not DBGrid.DataSource.DataSet.Eof do
begin
for j:=1 to ColCount do
begin
e.Workbooks[1].Sheets[1].Cells[5+i,j] := DBGrid.Fields[j-1].AsString;
if columnwidth[j-1]<length(DBGrid.Fields[j-1].AsString) then
columnwidth[j-1]:=length(DBGrid.Fields[j-1].AsString);
end;
DBGrid.DataSource.DataSet.Next;
i:=i+1;
end;
//µ÷ÕûexcelÁпí¶È
for i:=1 to colcount do
e.Workbooks[1].Sheets[1].Columns[i].ColumnWidth:=columnwidth[i-1]; y1:=5;
x1:=1;
y2:=8+DBGrid.DataSource.DataSet.RecordCount-1;
x2:=ColCount;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeTop].LineStyle := xlContinuous;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeTop].Weight := xlThin;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeTop].ColorIndex := xlAutomatic;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeBottom].LineStyle := xlContinuous;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeBottom].Weight := xlThin;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeBottom].ColorIndex := xlAutomatic;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeRight].LineStyle := xlContinuous;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeRight].Weight := xlThin;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeRight].ColorIndex := xlAutomatic;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeLeft].LineStyle := xlContinuous;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeLeft].Weight := xlThin;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlEdgeLeft].ColorIndex := xlAutomatic;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideVertical].LineStyle := xlContinuous;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideVertical].Weight := xlThin;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideVertical].ColorIndex := xlAutomatic;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideHorizontal].LineStyle := xlContinuous;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideHorizontal].Weight := xlThin;
e.Workbooks[1].Sheets[1].Range[e.Workbooks[1].Sheets[1].Cells[y1,x1],e.Workbooks[1].Sheets[1].Cells[y2,x2]].Borders[xlInsideHorizontal].ColorIndex := xlAutomatic;// e.visible:=true;// excel.DisplayAlerts:=true;//Í˳öʱ²»Ìáʾ// e.quit;
end;