用DELPHIL如何将SQL数据导入EXCEL中

 我来答
轻快又委婉的小虎鲸M
2010-09-07 · 超过19用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:53.5万
展开全部
可以用直接到处并显示EXCEL,另外导入指定EXCEL中,但不显示EXCEL。今天我告诉你导入并显示EXCEL的方法,DELPHI中基本都是这么做的,

procedure Tfrmkccx.btn1Click(Sender: TObject);
var
Sheet,v_totallist: Variant;
Row,Col: Integer;
tempsub:string;
Excel:variant;
I:Integer;

begin
try
Excel:=UnAssigned;
Excel:=CreateOleObject('Excel.Application');
Excel.Visible:=true;
Excel.DisplayAlerts:=true;
excel.workbooks.add(1);
Sheet := Excel.ActiveSheet;
Sheet.Columns[6].horizontalalignment:=4;//右
Sheet.Columns[7].horizontalalignment:=4;
//Sheet.PageSetup.Orientation:=2;
Sheet.Columns[1].ColumnWidth := 20 ;
Sheet.Columns[2].ColumnWidth := 9 ;
Sheet.Columns[3].ColumnWidth := 9 ;
Sheet.Columns[4].ColumnWidth := 9 ;
Sheet.Columns[5].ColumnWidth := 9 ;
Sheet.Columns[6].ColumnWidth := 9 ;
Sheet.Columns[7].ColumnWidth := 9 ;
Sheet.Columns[8].ColumnWidth := 9 ;
Sheet.Columns[9].ColumnWidth := 9 ;
//Sheet.Columns[10].ColumnWidth := 9 ;
//Sheet.Columns[11].ColumnWidth := 23 ;
//Excel.ActiveSheet.PageSetup.CenterFooter :='仓管员: 复核人: 第&P页/共&N页';
Excel.ActiveSheet.PageSetup.PrintGridLines := True;
Excel.Cells.Font.Size:=9;
if VarIsEmpty(Sheet)=true then
begin
showmessage('Sheet no found');
exit;
end;
excel.Cells[1,1].font.Size:=20;
excel.cells[1,1]:=' 入库记录 ' ;
excel.cells[2,1]:=' ';
excel.cells[3,1]:='入库日期';
excel.cells[3,2]:='供应商';
excel.cells[3,3]:='图号';
excel.cells[3,4]:='名称';
excel.cells[3,5]:='材料';
excel.cells[3,6]:='规格';
excel.cells[3,7]:='数量';
excel.cells[3,8]:='单价';
excel.cells[3,9]:='金额';
row:=1;
sheet.Columns['A:j'].Select ;
excel.Selection.NumberFormatLocal:= '@';
qry1.First ;
while not qry1.Eof do
begin
excel.cells[row+3,1]:=qry1.FieldByName('pro_into_date').AsString ;
excel.cells[row+3,2]:=qry1.FieldByName('pro_supplier').AsString ;
excel.cells[row+3,3]:=qry1.FieldByName('chart_id').AsString ;
excel.cells[row+3,4]:=qry1.FieldByName('pro_name').AsString ;
excel.cells[row+3,5]:=qry1.FieldByName('pro_material').AsString ;
excel.cells[row+3,6]:=qry1.FieldByName('pro_norm').AsString ;
excel.cells[row+3,7]:=qry1.FieldByName('pro_num').AsInteger ;
excel.cells[row+3,8]:=qry1.FieldByName('pro_price').AsFloat ;
excel.cells[row+3,9]:=qry1.FieldByName('totalprice').AsFloat ;
row:=row+1;
qry1.Next ;
end;
except
Application.MessageBox('Excel没有正确安装!','警告',MB_OK);
exit;
end;
end;
procedure Tfrmkccx.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
frmkccx:=nil;
end;

你只需交我这段代码稍微替换下你的,就OK了,改动不超过5个字,
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式