不好意思前两天休息,没有上线。现在刚刚上班。我这里有一段导出EXECL的代码。自己写的。应该对你和大家都有所帮助。都是我们公司现在用的。其中包括格式设置:自动1:1。页眉等等... ...
procedure TForm1.BitBtn2Click(Sender: TObject);
var
sdate, str1, str2, str3, str4, str5: string;
m, i, i1, i2: Integer;
Excelid: Variant;
begin
if Iman = 1 then begin
sdate := FormatDateTime('YYYYMMDD', DateTimePicker1.Date);
Excelid := CreateOleObject('Excel.Application');
Excelid.Visible := TRUE;
Excelid.WorkBooks.add;
Excelid.WorkBooks[1].sheets[1].name := 'ABC计划';
Excelid.Caption := 'P类销售报表' + sdate + '';
Excelid.worksheets[1].range['A1
1'].Merge(TRUE);
Excelid.Cells[1, 1].Value := 'P类商品销售' + sdate + '报表';
Excelid.range['A1,D1'].Merge(TRUE);
Excelid.range['A1'].horizontalalignment := xlcenter; // 居中显示字体
//Excelid.range['A1,D1'].horizontalalignment:=xlleft;
// Excelid.range['A1,D1'].horizontalalignment := xlright;
Excelid.range['A1'].font.size := 18;
Excelid.range['A1'].font.bold := TRUE;
//Excelid.range['A1,D1'].font.name:='隶书';
i := 2;
Excelid.Cells.item[i, 1].Value := '商品编码';
Excelid.Cells.item[i, 2].Value := '商品名称';
Excelid.Cells.item[i, 3].Value := '销售数量';
Excelid.Cells.item[i, 4].Value := '库存数量';
Excelid.Columns[1].ColumnWidth := 12;
Excelid.Columns[2].ColumnWidth := 38;
Excelid.Columns[3].ColumnWidth := 8;
Excelid.Columns[4].ColumnWidth := 8;
Excelid.range['A2
2'].horizontalalignment := xlcenter;
Excelid.range['A2
2'].font.size := 9;
Excelid.range['A2
2'].font.bold := TRUE;
i := 3;
Query1.First;
while not Query1.Eof do begin
Excelid.Cells[i, 1].Value :=
Query1.FieldByName('商品编码').AsString;
Excelid.Cells[i, 2].Value :=
Query1.FieldByName('商品名称').AsString;
Excelid.Cells[i, 3].Value := '''' +
Query1.FieldByName('销售数量').AsString;
Excelid.Cells[i, 4].Value := '''' +
Query1.FieldByName('库存数量').AsString;
Inc(i);
Query1.Next;
end;
str1 := INTTOSTR(i - 1);
Excelid.range['A3
' + str1 + ''].font.size := 9;
Excelid.range['A2
' + str1 + ''].Borders.linestyle := 1;
Excelid.range['C2
' + str1 + ''].horizontalalignment := xlcenter;
Excelid.ActiveSheet.PageSetup.PrintTitleRows := '$1:$2';
Excelid.ActiveSheet.PageSetup.TopMargin := 10;
Excelid.ActiveSheet.PageSetup.BottomMargin := 10;
Excelid.ActiveSheet.PageSetup.ORIENTATION := 1;
// 以下自动调整为一比一比例;
Excelid.ActiveSheet.PageSetup.LeftMargin := 2 / 0.035;
Excelid.ActiveSheet.PageSetup.RightMargin := 2 / 0.035;
Excelid.ActiveSheet.PageSetup.TopMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.BottomMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.HeaderMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.FooterMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.PrintComments := xlPrintNoComments;
// Excelid.ActiveSheet.PageSetup.PrintQuality := 300;
Excelid.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035;
// Excelid.ActiveSheet.PageSetup.CenterVertically := false;
Excelid.ActiveSheet.PageSetup.ORIENTATION := xlLandscape;
Excelid.ActiveSheet.PageSetup.ORIENTATION := 1;
Excelid.ActiveSheet.PageSetup.Draft := FALSE;
Excelid.ActiveSheet.PageSetup.PaperSize := xlPaperA4;
Excelid.ActiveSheet.PageSetup.FirstPageNumber := xlAutomatic;
Excelid.ActiveSheet.PageSetup.Order := xlDownThenOver;
Excelid.ActiveSheet.PageSetup.BlackAndWhite := TRUE;
Excelid.ActiveSheet.PageSetup.Zoom := FALSE;
Excelid.ActiveSheet.PageSetup.FitToPagesWide := 1;
Excelid.ActiveSheet.PageSetup.FitToPagesTall := 1;
// 以下测试生成第二个报表;
{
Excelid.WorkBooks[1].sheets[2].name := 'ABC__B计划';
Excelid.WorkBooks[1].sheets[2].activate;
Excelid.range['A1
1'].Merge(TRUE);
Excelid.Cells[1, 1].Value :='P类商品销售' + sdate + '报表';
Excelid.range['A1'].horizontalalignment := xlcenter; // 居中显示字体
//Excelid.range['A1,D1'].horizontalalignment:=xlleft; 靠左显示
// Excelid.range['A1,D1'].horizontalalignment := xlright; 靠右显示
Excelid.range['A1'].font.size := 18;
Excelid.range['A1'].font.bold := TRUE;
//Excelid.range['A1,D1'].font.name:='隶书';
i := 2;
Excelid.Cells.item[i, 1].Value := '商品编码';
Excelid.Cells.item[i, 2].Value := '商品名称';
Excelid.Cells.item[i, 3].Value := '销售数量';
Excelid.Cells.item[i, 4].Value := '库存数量';
Excelid.Columns[1].ColumnWidth := 12;
Excelid.Columns[2].ColumnWidth := 38;
Excelid.Columns[3].ColumnWidth := 8;
Excelid.Columns[4].ColumnWidth := 8;
Excelid.range['A2
2'].horizontalalignment := xlcenter;
Excelid.range['A2
2'].font.size := 9;
Excelid.range['A2
2'].font.bold := TRUE;
i := 3;
Query1.First;
while not Query1.Eof do begin
Excelid.Cells[i, 1].Value :=
Query1.FieldByName('商品编码').AsString;
Excelid.Cells[i, 2].Value :=
Query1.FieldByName('商品名称').AsString;
Excelid.Cells[i, 3].Value := '''' +
Query1.FieldByName('销售数量').AsString;
Excelid.Cells[i, 4].Value := '''' +
Query1.FieldByName('库存数量').AsString;
Inc(i);
Query1.Next;
end;
str1 := INTTOSTR(i - 1);
Excelid.range['A3
' + str1 + ''].font.size := 9;
Excelid.range['A2
' + str1 + ''].Borders.linestyle := 1;
Excelid.range['C2
' + str1 + ''].horizontalalignment := xlcenter;
// Excelid.ActiveSheet.PageSetup.PrintArea :='$A$1:$D$5';
Excelid.ActiveSheet.PageSetup.LeftMargin := 0.15748031496063;
Excelid.ActiveSheet.PageSetup.RightMargin := 0.15748031496063;
Excelid.ActiveSheet.PageSetup.TopMargin := 0.393700787401575;
Excelid.ActiveSheet.PageSetup.BottomMargin := 0.393700787401575;
Excelid.ActiveSheet.PageSetup.HeaderMargin := 0.511811023622047;
Excelid.ActiveSheet.PageSetup.FooterMargin := 0.511811023622047;
Excelid.ActiveSheet.PageSetup.PrintComments := xlPrintNoComments;
// Excelid.ActiveSheet.PageSetup.PrintQuality := 300;
Excelid.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035;
// Excelid.ActiveSheet.PageSetup.CenterVertically := false;
Excelid.ActiveSheet.PageSetup.Orientation := xlLandscape;
Excelid.ActiveSheet.PageSetup.Orientation := 1;
Excelid.ActiveSheet.PageSetup.Draft := FALSE;
Excelid.ActiveSheet.PageSetup.PaperSize := xlPaperA4;
Excelid.ActiveSheet.PageSetup.FirstPageNumber := xlAutomatic;
Excelid.ActiveSheet.PageSetup.Order := xlDownThenOver;
Excelid.ActiveSheet.PageSetup.BlackAndWhite := TRUE;
Excelid.ActiveSheet.PageSetup.Zoom := FALSE;
Excelid.ActiveSheet.PageSetup.FitToPagesWide := 1;
Excelid.ActiveSheet.PageSetup.FitToPagesTall := 1;
//测试生成第二个报表结束;
}
{
Excelid.sheets.add;
Excelid.sheets[3].name := 'ABC__C计划';
Excelid.sheets[3].activate;
}
end
else
Edit1.Text := 'IMAN=' + INTTOSTR(Iman) + '';
if Iman = 2 then begin
m := Query1.RecordCount;
if m >0 begin
Excelid := CreateOleObject('Excel.Application');
Excelid.Visible := TRUE;
Excelid.WorkBooks.add;
Excelid.WorkBooks[1].sheets[1].name := '正常退货商品';
Excelid.Caption := 'SHOP05退货申请';
Excelid.range['A1:M1'].Merge(TRUE);
Excelid.Cells[1, 1].Value :=
'shop05分店退货申请表';
i := 2;
Excelid.Cells[i, 1].Value := '分店名称:05分店';
Excelid.Cells[i, 2].Value := '商品类别:';
Excelid.Cells[i, 4].Value := '分店申请人:';
Excelid.Cells[i, 7].Value := '采购部批准人:';
Excelid.Columns[1].ColumnWidth := 26;
Excelid.Columns[2].ColumnWidth := 5;
Excelid.Columns[3].ColumnWidth := 12;
Excelid.Columns[4].ColumnWidth := 9;
Excelid.Columns[5].ColumnWidth := 3;
Excelid.Columns[6].ColumnWidth := 4;
Excelid.Columns[7].ColumnWidth := 9;
Excelid.Columns[8].ColumnWidth := 6;
Excelid.Columns[9].ColumnWidth := 6;
Excelid.Columns[10].ColumnWidth := 7;
Excelid.Columns[11].ColumnWidth := 22;
Excelid.Columns[12].ColumnWidth := 6;
Excelid.Columns[13].ColumnWidth := 7;
i := 3;
Excelid.Cells[i, 1].Value := '商品名称';
Excelid.Cells[i, 2].Value := '规格';
Excelid.Cells[i, 3].Value := '商品条形码';
Excelid.Cells[i, 4].Value := '商品编码';
Excelid.Cells[i, 5].Value := '单位';
Excelid.Cells[i, 6].Value := '数量';
Excelid.Cells[i, 7].Value := '退货原因';
Excelid.Cells[i, 8].Value := '采购标志';
Excelid.Cells[i, 9].Value := '跟踪标志';
Excelid.Cells[i, 10].Value := '供应商编码';
Excelid.Cells[i, 11].Value := '供应商名称';
Excelid.Cells[i, 12].Value := '商品库存';
Excelid.Cells[i, 13].Value := '处理意见';
Excelid.range['A1:M3'].font.name := '宋体';
Excelid.range['A1'].font.size := 18;
Excelid.range['A2:M3'].font.size := 10;
Excelid.range['A1'].font.bold := TRUE;
Excelid.range['A3:M3'].font.bold := TRUE;
Excelid.range['A1'].horizontalalignment := $FFFFEFF4;
Excelid.range['A1'].VerticalAlignment := $FFFFEFF4;
Excelid.range['A3:M3'].horizontalalignment :=
$FFFFEFF4;
Excelid.range['A3:M3'].VerticalAlignment := $FFFFEFF4;
i := 4;
Query1.First;
while not Query1.Eof do begin
Excelid.Cells[i, 1].Value :=
Query1.FieldByName('商品名称').AsString;
Excelid.Cells[i, 2].Value :=
Query1.FieldByName('规格').AsString;
Excelid.Cells[i, 3].Value := '''' +
Query1.FieldByName('商品条形码').AsString;
Excelid.Cells[i, 4].Value := '''' +
Query1.FieldByName('商品编码').AsString;
Excelid.Cells[i, 5].Value :=
Query1.FieldByName('单位').AsString;
Excelid.Cells[i, 6].Value :=
Query1.FieldByName('数量').AsString;
Excelid.Cells[i, 8].Value :=
Query1.FieldByName('采购标志').AsString;
Excelid.Cells[i, 9].Value :=
Query1.FieldByName('跟踪标志').AsString;
Excelid.Cells[i, 10].Value :=
Query1.FieldByName('供应商编码').AsString;
Excelid.Cells[i, 11].Value :=
Query1.FieldByName('供应商名称').AsString;
Excelid.Cells[i, 12].Value :=
Query1.FieldByName('商品库存').AsString;
Excelid.Cells[i, 13].Value := '''' +
Query1.FieldByName('处理意见').AsString;
Inc(i);
Query1.Next;
end;
str1 := INTTOSTR(i - 1);
Excelid.range['A4:M' + str1 + ''].font.size := 9;
Excelid.range['A3:M' + str1 + ''].Borders.linestyle := 1;
Excelid.ActiveSheet.PageSetup.PrintTitleRows := '$1:$3';
Excelid.ActiveSheet.PageSetup.TopMargin := 10;
Excelid.ActiveSheet.PageSetup.BottomMargin := 10;
Excelid.ActiveSheet.PageSetup.ORIENTATION := 1;
Excelid.ActiveSheet.PageSetup.LeftMargin := 0.4 / 0.035;
Excelid.ActiveSheet.PageSetup.RightMargin := 0.4 / 0.035;
Excelid.ActiveSheet.PageSetup.TopMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.BottomMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.HeaderMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.FooterMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.PrintComments := xlPrintNoComments;
Excelid.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035;
Excelid.ActiveSheet.PageSetup.CenterFooter := '共&N页,第&P页';
Excelid.ActiveSheet.PageSetup.ORIENTATION := 2;
Excelid.ActiveSheet.PageSetup.Draft := FALSE;
Excelid.ActiveSheet.PageSetup.PaperSize := xlPaperA4;
Excelid.ActiveSheet.PageSetup.FirstPageNumber := xlAutomatic;
Excelid.ActiveSheet.PageSetup.Order := xlDownThenOver;
Excelid.ActiveSheet.PageSetup.BlackAndWhite := TRUE;
Excelid.WorkBooks[1].sheets[1].Select;
// Excelid.sheets[1].ColorIndex := 4;
// Excelid.WorkBooks[1].sheets[1].ColorIndex := 4;
if m < 34 then begin
Excelid.ActiveSheet.PageSetup.Zoom := FALSE;
Excelid.ActiveSheet.PageSetup.FitToPagesWide := 1;
Excelid.ActiveSheet.PageSetup.FitToPagesTall := 1;
end;
m := Query3.RecordCount;
if m > 0 then begin
// i :=i + 2;
str4 := INTTOSTR(m);
str3 := ' 注:有' + str4 + '个退货标志为L的商品';
// Excelid.Cells['A:'+str2+''].Value :=str3;
Excelid.Cells[i, 1].Value := str3;
Excelid.Cells[i, 1].font.size := 10;
Excelid.Cells[i, 1].font.bold := TRUE;
Excelid.Cells[i, 1].font.ColorIndex := 3;
// Excelid.Cells[1, '+str2+'].Value :=str3;
end;
end;
//=====================================================================
//生成第二个报表
m := Query3.RecordCount;
if m > 0 then begin
{
Excelid := CreateOleObject('Excel.Application');
Excelid.Visible := TRUE;
Excelid.WorkBooks.add;
Excelid.Caption := 'SHOP05退货申请';
}
Excelid.sheets.add;
Excelid.Visible := TRUE;
Excelid.WorkBooks[1].sheets[1].activate;
Excelid.WorkBooks[1].sheets[1].name := '退货标志为L的商品';
Excelid.Cells[1, 1].Value :=
'shop05分店退货申请表';
Excelid.range['A1:M1'].Merge(TRUE);
i := 2;
Excelid.Cells[i, 1].Value := '分店名称:05分店';
Excelid.Cells[i, 2].Value := '商品类别:';
Excelid.Cells[i, 4].Value := '分店申请人:';
Excelid.Cells[i, 7].Value := '采购部批准人:';
Excelid.Columns[1].ColumnWidth := 26;
Excelid.Columns[2].ColumnWidth := 5;
Excelid.Columns[3].ColumnWidth := 12;
Excelid.Columns[4].ColumnWidth := 9;
Excelid.Columns[5].ColumnWidth := 3;
Excelid.Columns[6].ColumnWidth := 4;
Excelid.Columns[7].ColumnWidth := 9;
Excelid.Columns[8].ColumnWidth := 6;
Excelid.Columns[9].ColumnWidth := 6;
Excelid.Columns[10].ColumnWidth := 7;
Excelid.Columns[11].ColumnWidth := 22;
Excelid.Columns[12].ColumnWidth := 6;
Excelid.Columns[13].ColumnWidth := 7;
i := 3;
Excelid.Cells[i, 1].Value := '商品名称';
Excelid.Cells[i, 2].Value := '规格';
Excelid.Cells[i, 3].Value := '商品条形码';
Excelid.Cells[i, 4].Value := '商品编码';
Excelid.Cells[i, 5].Value := '单位';
Excelid.Cells[i, 6].Value := '数量';
Excelid.Cells[i, 7].Value := '退货原因';
Excelid.Cells[i, 8].Value := '采购标志';
Excelid.Cells[i, 9].Value := '跟踪标志';
Excelid.Cells[i, 10].Value := '供应商编码';
Excelid.Cells[i, 11].Value := '供应商名称';
Excelid.Cells[i, 12].Value := '商品库存';
Excelid.Cells[i, 13].Value := '处理意见';
Excelid.range['A1:M3'].font.name := '宋体';
Excelid.range['A1'].font.size := 18;
Excelid.range['A2:M3'].font.size := 10;
Excelid.range['A1'].font.bold := TRUE;
Excelid.range['A3:M3'].font.bold := TRUE;
Excelid.range['A1'].horizontalalignment := $FFFFEFF4;
Excelid.range['A1'].VerticalAlignment := $FFFFEFF4;
Excelid.range['A3:M3'].horizontalalignment :=
$FFFFEFF4;
Excelid.range['A3:M3'].VerticalAlignment := $FFFFEFF4;
i := 4;
Query3.First;
while not Query3.Eof do begin
Excelid.Cells[i, 1].Value :=
Query3.FieldByName('商品名称').AsString;
Excelid.Cells[i, 2].Value :=
Query3.FieldByName('规格').AsString;
Excelid.Cells[i, 3].Value := '''' +
Query3.FieldByName('商品条形码').AsString;
Excelid.Cells[i, 4].Value := '''' +
Query3.FieldByName('商品编码').AsString;
Excelid.Cells[i, 5].Value :=
Query3.FieldByName('单位').AsString;
Excelid.Cells[i, 6].Value :=
Query3.FieldByName('数量').AsString;
Excelid.Cells[i, 8].Value :=
Query3.FieldByName('采购标志').AsString;
Excelid.Cells[i, 9].Value :=
Query3.FieldByName('跟踪标志').AsString;
Excelid.Cells[i, 10].Value :=
Query3.FieldByName('供应商编码').AsString;
Excelid.Cells[i, 11].Value :=
Query3.FieldByName('供应商名称').AsString;
Excelid.Cells[i, 12].Value :=
Query3.FieldByName('商品库存').AsString;
Excelid.Cells[i, 13].Value := '''' +
Query3.FieldByName('处理意见').AsString;
Inc(i);
Query3.Next;
end;
str1 := INTTOSTR(i - 1);
Excelid.range['A4:M' + str1 + ''].font.size := 9;
Excelid.range['A3:M' + str1 + ''].Borders.linestyle := 1;
Excelid.ActiveSheet.PageSetup.PrintTitleRows := '$1:$3';
Excelid.ActiveSheet.PageSetup.TopMargin := 10;
Excelid.ActiveSheet.PageSetup.BottomMargin := 10;
Excelid.ActiveSheet.PageSetup.ORIENTATION := 1;
Excelid.ActiveSheet.PageSetup.LeftMargin := 0.4 / 0.035;
Excelid.ActiveSheet.PageSetup.RightMargin := 0.4 / 0.035;
Excelid.ActiveSheet.PageSetup.TopMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.BottomMargin := 1 / 0.035;
Excelid.ActiveSheet.PageSetup.HeaderMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.FooterMargin := 0.5 / 0.035;
Excelid.ActiveSheet.PageSetup.PrintComments := xlPrintNoComments;
Excelid.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035;
Excelid.ActiveSheet.PageSetup.CenterFooter := '共&N页,第&P页';
Excelid.ActiveSheet.PageSetup.ORIENTATION := 2;
Excelid.ActiveSheet.PageSetup.Draft := FALSE;
Excelid.ActiveSheet.PageSetup.PaperSize := xlPaperA4;
Excelid.ActiveSheet.PageSetup.FirstPageNumber := xlAutomatic;
Excelid.ActiveSheet.PageSetup.Order := xlDownThenOver;
Excelid.ActiveSheet.PageSetup.BlackAndWhite := TRUE;
Excelid.WorkBooks[1].sheets[2].activate;
end;
//生成第二个报表结束
end;
end;