标签:do begin end EXCEL 导出 ws iCol DBGridEh1
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.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 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;
ws.RCRange[2,iCol1+2,2,iCol1 + 2].ColumnWidth := Trunc(DBGridEh1.Columns.Items[iCol].Width* 0.1433);
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;
// ws.RCRange[2,icol+2,2,iCol + 2].ColumnWidth := Fields[iCol].DisplayWidth;
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;
标签:do,begin,end,EXCEL,导出,ws,iCol,DBGridEh1 来源: https://www.cnblogs.com/masg/p/16250868.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。