标签: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;