1. 程式人生 > >delphi 導出excel

delphi 導出excel

delphi excel

Var
FExcel:OleVariant; //excel應用程序
FWorkBook :OleVariant; //工作表
Temsheet:OleVariant; //工作薄
FPicture:OleVariant;//圖片
tmpstr:String;
range:variant;//範圍
i,j,TemInt:integer;
TemFileName:String;
real_american_price:Double;
begin
if (kind = ‘小米清單‘) or (kind = ‘小商品清單‘) then
Begin
if cxxiaomilist.DataController.RecordCount = 0 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); //新的工作表
Temsheet:=FWorkBook.Worksheets.Add;
Temsheet.Name:=kind;
except
Application.MessageBox(‘無法創建Excel文件, 請確認是否安裝了Excel軟件‘,
PChar(Application.Title), MB_OK + MB_ICONWarning);
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]];//選定表格
range.select;
range.merge;
range:=Temsheet.Range[Temsheet.cells[3,25],Temsheet.cells[3,27]];//選定表格
range.select;
range.merge;
Temsheet.Cells[3,25].HorizontalAlignment:=-4108; //字居中
Temsheet.Cells[3,25] := cxxiaomilist.Bands[112 + 2].Caption;


range:=Temsheet.Range[Temsheet.cells[3,109],Temsheet.cells[3,110]];//選定表格
range.select;
range.merge;
range:=Temsheet.Range[Temsheet.cells[3,109],Temsheet.cells[3,111]];//選定表格
range.select;
range.merge;
Temsheet.Cells[3,109].HorizontalAlignment:=-4108; //字居中
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(Handle,‘導出成功‘,‘提示‘,MB_OK);
//FExcel.visible:=true;
FExcel.quit; //關閉Excel
FExcel := unassigned;
//shellexecute(0,‘open‘,PChar(ExtractFileName(TemFileName)),nil,PChar(ExtractFilePath(TemFileName)),SW_Show);

end;
End;

本文出自 “一切有為法,如夢幻泡影” 博客,請務必保留此出處http://kaixinbuliao.blog.51cto.com/2567365/1982749

delphi 導出excel