2,497
社区成员
发帖
与我相关
我的任务
分享
if not DBGridEh1.DataSource.DataSet.Active then
begin
Msg:='数据表中没有数据,请先统计数据';
ShowMessage(Msg);
Exit;
end;
ShowMessage('有数据,可以导出Excel!');
Row:=1 ; Col:=5; //Row为输出起始行,Col为总列数
try
Xlsa := CreateOleObject('Excel.application');
except
MessageDlg('Excel May Not Be Installed!',mtError,[mbok],0);
Abort;
end;
Xlsa.Visible := True;
XlsW := XlsA.Workbooks.Add(-4167);
XlsA.workbooks[1].sheets[1].name:='sheet1';
XlsS := XlsA.workbooks[1].sheets['sheet1'];
Range := XlsS.Range[XlsS.cells[Row,1],XlsS.cells[Row,Col]];
Range.select;
Range.merge;
Range.value := '学生信息';
Range.font.size := 9;
Range.font.name := '宋体';
Range.font.fontStyle:='加粗';
Range.HorizontalAlignment := xlCenter;
Range := XlsS.Range[XlsS.cells[Row+1,1],XlsS.cells[Row+1,1]];
Range.select;
Range.merge;
Range.value := '身份证号';
Range.font.size := 9;
Range.font.name := '宋体';
Range.HorizontalAlignment := xlCenter;
Range := XlsS.Range[XlsS.cells[Row+1,2],XlsS.cells[Row+1,2]];
Range.select;
Range.merge;
Range.value := '姓名';
Range.font.size := 9;
Range.font.name := '宋体';
Range.HorizontalAlignment := xlCenter;
Range := XlsS.Range[XlsS.cells[Row+1,3],XlsS.cells[Row+1,3]];
Range.select;
Range.merge;
Range.value := '性别';
Range.font.size := 9;
Range.font.name := '宋体';
Range.HorizontalAlignment := xlCenter;
Range := XlsS.Range[XlsS.cells[Row+1,4],XlsS.cells[Row+1,4]];
Range.select;
Range.merge;
Range.value := '民族';
Range.font.size := 9;
Range.font.name := '宋体';
Range.HorizontalAlignment := xlCenter;
Range := XlsS.Range[XlsS.cells[Row+1,5],XlsS.cells[Row+1,5]];
Range.select;
Range.merge;
Range.value := '年龄';
Range.font.size := 9;
Range.font.name := '宋体';
Range.HorizontalAlignment := xlCenter;
Range := XlsS.Range[XlsS.cells[Row,1],XlsS.cells[Row+1,Col]];
Range.select ;
Range.font.size := 9;
Range.font.name := '宋体';
Range.HorizontalAlignment := xlCenter;
Range.borders.lineStyle := xlContinuous;
with Fdm.ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('select * from StudentInfo');
Open;
if Active then
begin
j:=RecordCount;
if j>0 then
begin
first;
for i:=1 to j do
begin
XlsS.cells[Row+i+1,1].NumberFormatLocal:='@';
XlsS.cells[Row+i+1,1] :=FieldByName('cIdNo').Value;
XlsS.cells[Row+i+1,2] :=FieldByName('cName').Value;
XlsS.cells[Row+i+1,3] :=FieldByName('cGender').Value;
XlsS.cells[Row+i+1,4] :=FieldByName('cNation').Value;
XlsS.cells[Row+i+1,5] :=FieldByName('cAge').Value;
Next;
end;
Range := XlsS.range[XlsS.cells[Row+2,1],XlsS.cells[Row+1+j,Col]];
Range.select ;
Range.font.size := 9;
Range.font.name := '宋体';
Range.HorizontalAlignment := xlCenter;
Range.borders.lineStyle := xlContinuous;
end;//end j>0
end;//end Active
end;