导出EXCEL
来源:互联网 发布:用中文域名的大公司 编辑:程序博客网 时间:2024/06/14 23:14
//函数声明function ExportExcel(aAdoquery: TADOQuery;aTitle: string): Boolean;overload;function ExportExcel(DBGridEh1: TDBGridEh;aTitle: string): Boolean;overload;//函数实现function ExportExcel(DBGridEh1: TDBGridEh;aTitle: string): Boolean;var Book: IXLSWorkbook; ws: IXLSWorksheet; iSel,iCol,iCol1, iRow: Integer; SaveDialog1: TSaveDialog; function GetDbgridEHColumnsCount: Integer; var i: Integer; begin Result := 0; for i := 0 to DBGridEh1.Columns.Count - 1 do begin if DBGridEh1.Columns.Items[i].Visible then begin Inc(Result); end; end; end;begin SaveDialog1 := TSaveDialog.Create(nil); SaveDialog1.Filter := 'Excel文件(*.xls)|*.xls'; try DBGridEh1.DataSource.DataSet.DisableControls; iSel := DBGridEh1.DataSource.DataSet.RecNo; if SaveDialog1.Execute then begin try Book := TXLSWorkbook.Create; ws := Book.Sheets.Add; ws.Name := '导出数据'; iCol := GetDbgridEHColumnsCount; iRow := DBGridEh1.DataSource.DataSet.RecordCount; //单据头 with ws.RCRange[2, 2, 2, iCol + 1] do begin Interior.Color := clSkyBlue; Font.Color := clBlack; VerticalAlignment := xlVAlignCenter; HorizontalAlignment := xlHAlignCenter; RowHeight := 22; end; //表格样式 with ws.RCRange[2, 2,iRow+2, iCol +1] do begin Borders.Color := 9; end; //标题 with ws.RCRange[1, 2, 1, iCol+ 1] do begin Merge(false); HorizontalAlignment := xlHAlignCenter; VerticalAlignment := xlVAlignCenter; RowHeight := 30; Font.Bold := True; Font.Size := Font.Size + 3; end; with DBGridEh1 do begin iCol1 := 0; for iCol := 0 to DBGridEh1.Columns.Count - 1 do begin if DBGridEh1.Columns.Items[iCol].Visible then begin ws.Cells.Item[2, iCol1+2].Value := DBGridEh1.Columns.Items[iCol].Title.Caption; Inc(iCol1); end; end; end; iCol := 0; DBGridEh1.DataSource.DataSet.First; with DBGridEh1.DataSource.DataSet do begin for iRow := 0 to RecordCount - 1 do begin iCol1 := 0; for iCol := 0 to DBGridEh1.Columns.Count - 1 do begin if DBGridEh1.Columns.Items[iCol].Visible then begin ws.Cells.Item[iRow+3, iCol1+2].Value := FieldByName(DBGridEh1.Columns.Items[iCol].FieldName).Text; Inc(iCol1); end; end; Next; end; end; ws.Cells.Item[1, 2].Value := aTitle; Book.SaveAs(SaveDialog1.FileName + '.xls'); Book := nil; if MessageBox(0,'导出成功,是否要打开此文档?','询问',MB_YESNO + MB_ICONQUESTION) = IDYES then begin ShellExecute(0,'open',PAnsiChar(SaveDialog1.FileName + '.xls'),nil,nil,SW_NORMAL); end; except end; end; finally DBGridEh1.DataSource.DataSet.RecNo := iSel; DBGridEh1.DataSource.DataSet.EnableControls; FreeAndNil(SaveDialog1); end;end;function ExportExcel(aAdoquery: TADOQuery;aTitle: string): Boolean;var Book: IXLSWorkbook; ws: IXLSWorksheet; iCol, iRow: Integer; SaveDialog1: TSaveDialog;begin SaveDialog1 := TSaveDialog.Create(nil); SaveDialog1.Filter := 'Excel文件(*.xls)|*.xls'; try if SaveDialog1.Execute then begin Result := False; try Book := TXLSWorkbook.Create; ws := Book.Sheets.Add; ws.Name := '导出数据'; iCol := aAdoquery.FieldCount; iRow := aAdoquery.RecordCount; //单据头 with ws.RCRange[2, 2, 2, iCol + 1] do begin Interior.ColorIndex := 9; Font.ColorIndex := 2; VerticalAlignment := xlVAlignCenter; HorizontalAlignment := xlHAlignCenter; RowHeight := 22; end; //表格样式 with ws.RCRange[2, 2,iRow+2, iCol +1] do begin Borders.Color := 9; end; //标题 with ws.RCRange[1, 2, 1, iCol+ 1] do begin Merge(false); HorizontalAlignment := xlHAlignCenter; VerticalAlignment := xlVAlignCenter; RowHeight := 30; Font.Bold := True; Font.Size := Font.Size + 3; end; with aAdoquery do begin for iCol := 0 to FieldCount - 1 do begin ws.Cells.Item[2, iCol+2].Value := Fields[iCol].DisplayName; end; end; with aAdoquery do begin for iRow := 0 to RecordCount - 1 do begin for iCol := 0 to FieldCount - 1 do begin ws.Cells.Item[iRow+3, iCol+2].Value :=Fields[iCol].Text; end; Next; end; end; ws.Cells.Item[1, 2].Value := aTitle; Book.SaveAs(SaveDialog1.FileName + '.xls'); Book := nil; Result := True; if MessageBox(0,'导出成功,是否要打开此文档?','询问',MB_YESNO + MB_ICONQUESTION) = IDYES then begin ShellExecute(0,'open',PAnsiChar(SaveDialog1.FileName + '.xls'),nil,nil,SW_NORMAL); end; except end; end; finally FreeAndNil(SaveDialog1); end;end;
阅读全文
0 0
- 导出EXCEL
- Excel导出
- 导出Excel
- 导出EXCEL
- 导出Excel
- EXCEL导出
- 导出Excel
- 导出excel
- 导出excel
- EXCEL导出
- 导出excel
- 导出Excel
- Excel导出。
- 导出excel
- Excel 导出
- 导出excel
- 导出excel
- 导出excel
- Huffman Tree
- C语言的入门心得1——自我介绍及编译器的运用
- [学习笔记]Android知识点-点9切图法在Android UI设计中的运用
- Http中的请求-get-post
- Seq2seq自动跟帖
- 导出EXCEL
- Spring 事务传播行为
- 数据结构—2202: 合并链表(线性表)
- 信号处理第五课:一个向量用一组向量来表达
- F
- BZOJ 3732: Network
- HDU1015
- 用Cmake来编译fortran
- spring @Transactional注解参数详解