|
|
const Con_stStr='''';
var d1,d2,s1:string;
cun,i:integer;
begin
d1:=datetostr(datetimeFindfirst.date);
d2:=datetostr(dateTimeFindSecond.date);
cun:=adoqryfind.RecordCount;
try
v:= CreateOleObject('Excel.Application');
v.Visible := true;
v.Workbooks.Add;//新建EXCEL文件
v.worksheets[1].range['A1:K1'].Merge(True);//合并A1到L1
v.worksheets[1].range['A3:K3'].Merge(true);
v.Workbooks[1].WorkSheets[1].Name := '金星加油站'; //指定表的名称
Sheet:= v.Workbooks[1].WorkSheets[1];//worksheet意思是指表里面的数
Sheet.Cells[1,1] :='金星加油站'; //第一行第一格文字
sheet.cells[3,1] :='报表日期:'+d1+'至'+d2;//报表日期
Sheet.Cells[4,1] :='日 期';
Sheet.Cells[4,2] :='矿 名';
Sheet.Cells[4,3] :='煤票编号';
Sheet.Cells[4,4] :='煤车编号';
Sheet.Cells[4,5] :='净 重';
Sheet.Cells[4,6] :='油 品';
Sheet.Cells[4,7] :='数 量';
Sheet.Cells[4,8] :='单 价';
Sheet.Cells[4,9] :='金 额';
Sheet.Cells[4,10] :='加油员';
Sheet.Cells[4,11] :='开票员';
for i:=1 to cun do
begin
sheet.cells[i+4,1]:=adoqryFind.Fieldbyname('日期').Asstring;
//conststr+是在前面加了一个字符串,以使导出字符001不会在EXCEL中变在1
sheet.cells[i+4,2]:=ConstStr+adoqryFind.FieldByName('矿名').AsString;
sheet.cells[i+4,3]:=ConstStr+adoqryFind.Fieldbyname('收煤凭证编号').Asstring;
sheet.cells[i+4,4]:=ConstStr+adoqryFind.Fieldbyname('煤车编号').Asstring;
sheet.cells[i+4,5]:=adoqryFind.Fieldbyname('净重').Asstring;
sheet.cells[i+4,6]:=adoqryFind.Fieldbyname('油品名称').Asstring;
sheet.cells[i+4,7]:=adoqryFind.Fieldbyname('加油数量').Asstring;
sheet.cells[i+4,8]:=adoqryFind.Fieldbyname('当日单价').Asstring;
sheet.cells[i+4,9]:=adoqryFind.Fieldbyname('金额').Asstring;
sheet.cells[i+4,10]:=adoqryFind.Fieldbyname('加油员').Asstring;
sheet.cells[i+4,11]:=adoqryFind.Fieldbyname('开票员').Asstring;
adoqryfind.Next; //使数据当前数据下移一条,不然导出数据全部为相同的第一条
end;
i:=i+1;//循环的变量增加原来要放在这啊,我一直以为应该加在end;里面
//----------设置EXCEL表的格式----------
//设置边框
s1:='A4:K'+IntToStr(cun+4);
v.workbooks[1].worksheets[1].Range[s1].Borders.LineStyle :=1;
//让列中文本自动适应宽度
v.worksheets[1].Columns.AutoFit;
//设置文字垂直、水平居中
v.workbooks[1].worksheets[1].range['A1'].HorizontalAlignment := $FFFFEFF4;
v.workbooks[1].worksheets[1].range['A1'].VerticalAlignment := $FFFFEFF4;
v.workbooks[1].worksheets[1].range['A4:k4'].HorizontalAlignment := $FFFFEFF4;
v.workbooks[1].worksheets[1].range['A4:k4'].VerticalAlignment := $FFFFEFF4;
//加粗第1、2行文字
sheet.Cells[1,1].Font.Bold:=true;
sheet.cells[1,1].font.size:=20;
v.workbooks[1].worksheets[1].Rows[1].Font.bold:=true; //这是加粗第一行
v.worksheets[1].Rows[4].Font.bold:=true; //加粗第3行
cmdDateOuT.Enabled :=false;
except
Showmessage('初始化Excel失败,可能没装Excel,或者其他错误;请重起再试。');
v.DisplayAlerts := false;//是否提示存盘
v.Quit;//如果出错则退出
exit;
end;
Application.Restore;
Application.BringToFront;
end; |
|