关于delphi导到excel的问题(0分)

  • 主题发起人 主题发起人 txzhf
  • 开始时间 开始时间
T

txzhf

Unregistered / Unconfirmed
GUEST, unregistred user!
兄弟们谁有delphi导到excel的详细列子,我只编了如下一小段。要把表格线画上去咱做,请多指点。
self.ExcelApplication1.Visible[0]:=True;
self.ExcelApplication1.Caption:='导出数据';
self.ExcelApplication1.Workbooks.Add(Null,0);
self.ExcelWorkbook1.ConnectTo(self.ExcelApplication1.Workbooks[1]);
self.ExcelWorksheet1.ConnectTo(self.ExcelWorkbook1.Worksheets[1] as _worksheet);
self.ADOQuery1.Open ;
self.ADOQuery1.First ;
row:=1;
while not self.ADOQuery1.Eofdo
begin
column:=1 ;
for i:= 1 to self.ADOQuery1.FieldCountdo
begin
self.ExcelWorksheet1.Cells.Item[row,column]:=self.ADOQuery1.Fields[i-1].AsString ;
column:=column+1;
end;
self.ADOQuery1.Next ;
row:=row+1;
end;
 
Borders[1].LineStyle:=1;
Borders[2].LineStyle:=1;
Borders[3].LineStyle:=1;
Borders[4].LineStyle:=1;
 
我软件里面的一个导出过程。
//------------------------------------------------------------------------------
procedure Tcolorquote.dbtoexcel;
var ExcelApp,xlsheet,range: Variant;
i,n:integer;
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Visible := true;
ExcelApp.Caption := '应用程序调用 Microsoft Excel';
ExcelApp.WorkBooks.Add;
xlsheet:=ExcelApp.activesheet;
//***************页面设置***************
xlsheet.pagesetup.PaperSize:=9;
xlsheet.pagesetup.Orientation:=1;
xlsheet.PageSetup.LeftMargin:=30;
xlsheet.PageSetup.RightMargin:=30;
xlsheet.PageSetup.TopMargin:=35;
xlsheet.PageSetup.BottomMargin:=35;
xlsheet.PageSetup.HeaderMargin:=0;
xlsheet.PageSetup.FooterMargin:=0;
//**************************************
xlsheet.columns[1].columnwidth:=14;
xlsheet.columns[2].columnwidth:=14;
xlsheet.columns[3].columnwidth:=14;
xlsheet.columns[4].columnwidth:=14;
xlsheet.columns[5].columnwidth:=14;
xlsheet.columns[6].columnwidth:=14;
xlsheet.visible:=true;
range:=xlsheet.range[xlsheet.cells[1,1],xlsheet.cells[7,6]];
range.select;
range.merge;
range.font.size:=12;
range.HorizontalAlignment:=3;
range.VerticalAlignment:=2;
range.value:=rtftotxt;
range:=xlsheet.range[xlsheet.cells[8,1],xlsheet.cells[8,6]];
range.select;
range.merge;
xlsheet.rows[8].rowheight:=25;
//1
xlsheet.rows[8].font.size:=22;
xlsheet.rows[8].HorizontalAlignment:=3;
xlsheet.rows[8].font.name:='楷体_GB2312';
xlsheet.rows[8].font.Bold:=True;
xlsheet.cells[8,1].value:='报 价 单';
xlsheet.rows[9].font.size:=14;
xlsheet.cells[9,1].value:='客户:'+yhdata.querys.fieldbyname('客户名称').asstring;
xlsheet.cells[9,5].value:='日期:'+yhdata.querys.fieldbyname('报价日期').asstring;
xlsheet.rows[10].font.size:=14;
xlsheet.cells[10,1].value:='TO:'+yhdata.querys.fieldbyname('attn').asstring;
xlsheet.cells[10,5].value:='FM:'+yhdata.querys.fieldbyname('fm').asstring;

xlsheet.rows[11].rowheight:=20;
xlsheet.rows[11].font.size:=14;
xlsheet.rows[11].font.name:='宋体';
xlsheet.rows[11].HorizontalAlignment:=3;
xlsheet.rows[11].Borders[1].LineStyle:=1;
xlsheet.rows[11].Borders[2].LineStyle:=1;
xlsheet.rows[11].Borders[3].LineStyle:=1;
xlsheet.rows[11].Borders[4].LineStyle:=1;
xlsheet.cells[11,1].value:='编号';
xlsheet.cells[11,2].value:='产品';
xlsheet.cells[11,3].value:='颜色';
xlsheet.cells[11,4].value:='用料';
xlsheet.cells[11,5].value:='单价';
xlsheet.cells[11,6].value:='备注';
n:=yhdata.querys.recordcount;
for i:=1 to yhdata.querys.RecordCountdo
begin
xlsheet.rows[i+11].rowheight:=20;
//1
xlsheet.rows[i+11].font.size:=10;
xlsheet.rows[i+11].font.name:='宋体';
xlsheet.rows[i+11].HorizontalAlignment:=3;
xlsheet.rows[i+11].VerticalAlignment:=2;
xlsheet.rows[i+11].Borders[1].LineStyle:=1;
xlsheet.rows[i+11].Borders[2].LineStyle:=1;
xlsheet.rows[i+11].Borders[3].LineStyle:=1;
xlsheet.rows[i+11].Borders[4].LineStyle:=1;
xlsheet.cells[i+11,1].value:=yhdata.querys['编号'];
xlsheet.cells[i+11,2].value:=yhdata.querys['名称'];
xlsheet.cells[i+11,3].WrapText:=true;
xlsheet.cells[i+11,3].value:=yhdata.querys['颜色'];
xlsheet.cells[i+11,4].value:=yhdata.querys['用料'];
xlsheet.cells[i+11,5].value:=yhdata.querys.FieldByName('单价').asstring+'/'+yhdata.querys.FieldByName('单位').asstring;
xlsheet.cells[i+11,6].WrapText:=true;
if yhdata.querys['备注']<>'-' then
xlsheet.cells[i+11,6].value:=yhdata.querys['备注'];
yhdata.querys.next;
end;
range:=xlsheet.range[xlsheet.cells[n+12,1],xlsheet.cells[n+16,6]];
range.select;
range.Borders[1].LineStyle:=1;
range.Borders[2].LineStyle:=1;
range.Borders[3].LineStyle:=1;
range.Borders[4].LineStyle:=1;
range.Borders[11].LineStyle:=0;
range.Borders[12].LineStyle:=0;
xlsheet.cells[n+12,1].value:='以上为('+yhdata.querys.FieldByName('币种').asstring+')报价 结帐方式月结('+yhdata.querys.FieldByName('货款找数期').asstring+')天';
xlsheet.cells[n+14,1].value:='备注:';
xlsheet.cells[n+16,3].value:='客户签名:';
end;
 
從DBGrid中導入EXCEL:
procedure TForm1.Button5Click(Sender: TObject);
var ExcelApp:variant;
ExcelWkbook:variant;
ExcelWksheet:variant;
i,j:integer;
begin
if dm1.Query1.Active=false then
showmessage('沒有安裝EXCEL!')
else
begin
try
ExcelAPP:=CreateOleObject('Excel.Application');
ExcelWkbook:=ExcelApp.WorkBooks.Add;
ExcelWksheet:=ExcelApp.WorkSheets.Add;
except
MessageDlg('⊿Τ?杆Excel!',mtError,[mbYes],0);
abort;
end;
ExcelApp.Visible:=True;
with dm1do
begin
For i:=1 to DBGrid1.Columns.Countdo
ExcelWksheet.Cells[1,i]:=DBGrid1.Columns.Items[i-1].Title.Caption;
j:=2;
query1.First;
While not query1.Eofdo
begin
For i:=1 to DBGrid1.Columns.Countdo
ExcelWksheet.Cells[j,i]:=DBGrid1.Columns.Items[i-1].Field.AsString;
j:=j+1;
query1.Next;
end;
end;
end;
end;
 
后退
顶部