Var FExcel: OleVariant; // Excel application FWorkBook: OleVariant; // worksheet Temsheet: OleVariant; // workbook FPicture: OleVariant; // Image tmpStr: String; Range: Variant; // range i, j, TemInt: Integer; TemFileName: String; real_american_price: Double; the begin IF (kind = ' millet list ' ) or (kind = ' Commodity list ' ) the then the Begin IF cxxiaomilist.DataController.RecordCount = 0 the then begin Application.MessageBox(PChar('没有导出数据!'),'提示',MB_OK + MB_ICONWARNING); abort; end; SaveDialog1.Filter:='.xlsx'; if SaveDialog1.Execute then begin TemFileName:=SaveDialog1.FileName+'.xlsx'; Screen.Cursor:=CrHourGlass; TemInt:=0; try FExcel:= CreateoleObject('excel.Application ' ); FWorkBook: = FExcel.WorkBooks.Add (- 4167 ); // new worksheet Temsheet: = FWorkBook.Worksheets.Add; Temsheet.Name: = kind; the except Application.MessageBox ( ' Unable to create Excel document, verify the Excel software installation ' , the PChar (Application.Title), MB_OK + MB_ICONWARNING); the Exit; End ; Temsheet.Select; Temsheet.Range [ ' A1 ' , ' A1 ' ] .RowHeight: = 60; for i := 1 to 111 do begin Temsheet.Columns[i].ColumnWidth:=15; Temsheet.cells[1,i] := ''; if i = 1 then Temsheet.cells[1,i] := cxxiaomilist.Bands[111].Caption; if i = 22 then Temsheet.cells[1,i] := cxxiaomilist.Bands[112].Caption; Temsheet.cells[2,i] := cxxiaomilist.Bands[i-1].Caption; //////////////////////////////////////////////////////////// if i < 22 then Temsheet.cells[3,i] := cxxiaomilist.Columns[i-1].Caption; end; Temsheet.Columns[1].NumberFormat:='#####################'; range:=Temsheet.Range[Temsheet.cells[3,22],Temsheet.cells[3,23]];//选定表格 range.select; range.merge; range:=Temsheet.Range[Temsheet.cells[3,22],Temsheet.cells[3,24]];//选定表格 range.select; range.merge; Temsheet.Cells[3,22].HorizontalAlignment:=-4108; //字居中 Temsheet.Cells[3,22] := cxxiaomilist.Bands[112 + 1].Caption; range:=Temsheet.Range[Temsheet.cells[3,25],Temsheet.cells[3,26]];//Selected table range.select; range.merge; Range: = Temsheet.Range [Temsheet.cells [ . 3 , 25 ], Temsheet.cells [ . 3 , 27 ]]; // selected table range.select; range.merge; Temsheet.Cells [ . 3 , 25 ] .HorizontalAlignment: = - 4108 ; // word centered Temsheet.Cells [ . 3 , 25 ]: = cxxiaomilist.Bands [ 112 + 2 ] .Caption; Range: = Temsheet.Range [Temsheet.cells [ 3 , 109], Temsheet.cells [ . 3 , 110 ]]; // selected table range.select; range.merge; Range: = Temsheet.Range [Temsheet.cells [ . 3 , 109 ], Temsheet.cells [ . 3 , 111 ]] ; // selected table range.select; range.merge; Temsheet.Cells [ . 3 , 109 ] .HorizontalAlignment: = - 4108 ; // word centered Temsheet.Cells [ . 3 , 109 ]: = cxxiaomilist.Bands [ 112 + 30 ] .Caption; for I := 0 to cxxiaomilist.DataController.RecordCount - 1 do begin for j := 1 to cxxiaomilist.ColumnCount do begin Temsheet.cells[4 + i,j] := VarToStr(cxxiaomilist.DataController.GetValue(i,j-1)); // if j = 10 then // if TryStrToFloat(VarToStr(cxxiaomilist.DataController.GetValue(i,j)),real_american_price) then // if real_american_price > 150 then // begin // Temsheet.Cells[4 + i,j].Interior.Color := clRed; // Temsheet.Cells[4 + i,j + 4].Interior.Color := $0075C76B; // end; end; end; // for i:=0 to DBGrid2.Columns.Count - 1 do // begin // Temsheet.Cells[TemInt,i+2]:=DBGrid2.Columns[i].Title.Caption; // Temsheet.Cells[TemInt,i+2].HorizontalAlignment:=-4108; //字居中 // Temsheet.Cells[TemInt,i+2].Interior.Color:=clGray; //单元格背景色 // range:=Temsheet.Range[Temsheet.cells[TemInt,i+2],Temsheet.cells[TemInt,i+2]];//选定表格 // range.borders.linestyle:=1;//华线 // end; // // TemInt:=TemInt+1; // ////////////////////////////////////////////// // j:=0; // DBGrid2.DataSource.DataSet.First; // while not DBGrid2.DataSource.DataSet.Eof do // begin // Temsheet.Cells[TemInt+j,1].Value:=j+1; // Temsheet.Cells[TemInt+j,1].HorizontalAlignment:=-4108; //字居中 // range:=Temsheet.Range[Temsheet.cells[TemInt+j,1],Temsheet.cells[TemInt+j,1]];//选定表格 // range.borders.linestyle:=1;//华线 // // for i:=0 to DBGrid2.Columns.Count - 1 do // begin // Temsheet.Cells[TemInt+j,i+2].Value:=DBGrid2.Fields[i].AsString; // range:=Temsheet.Range[Temsheet.cells[TemInt+j,i+2],Temsheet.cells[TemInt+j,i+2]];//选定表格 // range.borders.linestyle:=1;//华线 // end; // DBGrid2.DataSource.DataSet.Next; // j:=j+1; // end; Application.ProcessMessages; Screen.Cursor:=CrDefault; FExcel.WorkBooks[1].saveas(TemFileName);//保存文件 FExcel.workbooks[1].close; //关闭工作表 Application.ProcessMessages; MessageBox (the Handle, ' export success ' , ' tips ' , MB_OK); // FExcel.visible: = to true; FExcel.quit; // Close Excel FExcel: = Unassigned; // ShellExecute (0, 'Open', PChar ( ExtractFileName (TemFileName)), nil, the PChar (ExtractFilePath (TemFileName)), SW_SHOW); End ; End;