首先在Uses处加上ComObj
procedure TForm1.Button1Click(Sender: TObject); var h,k:integer; Excelid: OleVariant; s: string; begin try Excelid := CreateOLEObject('Excel.Application'); except Application.MessageBox('Excel没有安装!', '提示信息', MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL); Exit; end; try ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from jj_department'); ADOQuery1.Open; k:=ADOQuery1.RecordCount; Excelid.Visible := True; Excelid.WorkBooks.Add; Excelid.worksheets[1].range['A1:c1'].Merge(True); Excelid.WorkSheets[1].Cells[1,1].Value :='部门编码表' ; Excelid.worksheets[1].Range['a1:a1'].HorizontalAlignment := $FFFFEFF4; Excelid.worksheets[1].Range['a1:a1'].VerticalAlignment := $FFFFEFF4; Excelid.WorkSheets[1].Cells[2,1].Value := '组别编号'; Excelid.WorkSheets[1].Cells[2,2].Value := '公司编号'; Excelid.WorkSheets[1].Cells[2,3].Value := '组别名称'; Excelid.worksheets[1].Range['A1:c1'].Font.Name := '宋体'; Excelid.worksheets[1].Range['A1:c1'].Font.Size := 9; Excelid.worksheets[1].range['A1:c2'].font.bold:=true; Excelid.worksheets[1].Range['A2:c2'].Font.Size := 9; Excelid.worksheets[1].Range['A2:c2'].HorizontalAlignment := $FFFFEFF4; Excelid.worksheets[1].Range['A2:c2'].VerticalAlignment := $FFFFEFF4; h:=3; ADOQuery1.First; while not ADOQuery1.Eof do begin Excelid.WorkSheets[1].Cells[h,1].Value := Adoquery1.FieldByName('Fdept_id').AsString; Excelid.WorkSheets[1].Cells[h,2].Value := Adoquery1.FieldByName('Ffdept_id').AsString; Excelid.WorkSheets[1].Cells[h,3].Value := Adoquery1.FieldByName('Fdept_name').AsString; Inc(h); Adoquery1.Next; end; s := 'A2:f'+ IntToStr(k+2); Excelid.worksheets[1].Range[s].Font.Name := '宋体'; Excelid.worksheets[1].Range[s].Font.size := 9; Excelid.worksheets[1].Range[s].Borders.LineStyle := 1; Excelid.Quit; except Application.MessageBox('导入数据出错!请检查文件的格式是否正确!', '提示信息', MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL); end; MessageBox(GetActiveWindow(), 'EXCEL数据导出成功!', '提示信息', MB_OK +MB_ICONWARNING); end;
本文介绍了一种使用COM对象将数据库查询结果导出到Excel的方法,包括创建OLE对象、打开工作簿、设置表格样式以及填充数据。
430

被折叠的 条评论
为什么被折叠?



