在把SQL数据导入EXCEL的程序中我用以下方法:
procedure TForm1.Button2Click(Sender: TObject);
var
ExcelApp,MyWorkBook: Variant;
i,j,k:integer;
FileName:string;
DlgSave:TsaveDialog;begin
Query1.Close ;
Query1.SQL.Clear ;
Query1.SQL.Add('SELECT * FROM testTable');
Query1.Open ;
DlgSave:=TsaveDialog.Create(nil);
DlgSave.Filter:='*.xls|*.xls';
if DlgSave.Execute then
begin
application.ProcessMessages; filename:=DlgSave.FileName;
try
ExcelApp := CreateOleObject( 'Excel.Application' );
ExcelApp.Caption :='Excel-cms2002';
MyWorkBook:=CreateOleobject('Excel.Sheet');
except application.Messagebox('无法打开Xls文件,请确认已 经安装EXCEL.','', mb_OK+mb_IconStop);
exit; end; MyworkBook:=ExcelApp.workBooks.Add() ; application.ProcessMessages;
ExcelApp.WorkSheets[1].Activate; myworkbook.worksheets[1].name:='ABC';
...... ExcelApp.Columns.AutoFit;
ExcelApp.ActiveWorkBook.SaveAs(FileName);
ExcelApp.WorkBooks.Close;
application.MessageBox('数据导出成....','数据导出',0);
ExcelApp.Quit;
DlgSave.Destroy; end;
end;得到的EXCEL有ABC,sheet2,sheet3 三个工作表。现在我有两个问题:
1。 怎样才能使EXCEL只有一个ABC工作表?
2。我想把第一行的A-D合并,并且要“居中”各位帮帮忙好吗?
procedure TForm1.Button2Click(Sender: TObject);
var
ExcelApp,MyWorkBook: Variant;
i,j,k:integer;
FileName:string;
DlgSave:TsaveDialog;begin
Query1.Close ;
Query1.SQL.Clear ;
Query1.SQL.Add('SELECT * FROM testTable');
Query1.Open ;
DlgSave:=TsaveDialog.Create(nil);
DlgSave.Filter:='*.xls|*.xls';
if DlgSave.Execute then
begin
application.ProcessMessages; filename:=DlgSave.FileName;
try
ExcelApp := CreateOleObject( 'Excel.Application' );
ExcelApp.Caption :='Excel-cms2002';
MyWorkBook:=CreateOleobject('Excel.Sheet');
except application.Messagebox('无法打开Xls文件,请确认已 经安装EXCEL.','', mb_OK+mb_IconStop);
exit; end; MyworkBook:=ExcelApp.workBooks.Add() ; application.ProcessMessages;
ExcelApp.WorkSheets[1].Activate; myworkbook.worksheets[1].name:='ABC';
...... ExcelApp.Columns.AutoFit;
ExcelApp.ActiveWorkBook.SaveAs(FileName);
ExcelApp.WorkBooks.Close;
application.MessageBox('数据导出成....','数据导出',0);
ExcelApp.Quit;
DlgSave.Destroy; end;
end;得到的EXCEL有ABC,sheet2,sheet3 三个工作表。现在我有两个问题:
1。 怎样才能使EXCEL只有一个ABC工作表?
2。我想把第一行的A-D合并,并且要“居中”各位帮帮忙好吗?
解决方案 »
- bde本地表有没有级联删除
- 读取TMemoryStream的简单问题
- 如何设置cxGrid某几个单元格的Focused为false?
- 向blazingfire 讨教FreeAndNil问题
- 初学者DELPHI数据库应用简单四问?
- 找关于‘数据库应用’方面的论文,专升本用。字数6000~7000字。最好为:人事管理、酒店管理等方面。谢谢
- 怎么用tdatabase控件联结桌面数据库,桌面数据库支持事务操作吗?
- 又能上CSDN了,又送控件又送分呢 (之二),
- 怎么解决Delphi6的quickrep组件与Windows98不兼容的问题?
- 星座与程序员-----小小调查!嘻~
- 让DBGRID实时更新数据,用的是BDE+MODULE
- 有关收费收据报表打印的问题,急!!!
改成
MyworkBook:=ExcelApp.workBooks.Add(1) ;
可以解决问题1
ExcelApp.Range['A1','D1'].HorizontalAlignment := xlCenter; //水平居中
ExcelApp.Range['A1','D1'].VerticalAlignment := xlCenter; //垂直居中
ExcelApp.Range['A1','D1'].MergeCells := True; //合并