懒的写,给你转载一个例子
1. 创建一个普通Application。 2. 在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。 3. 连接Excel 97,具体方法如下: 打开Excel97。Try ExcelApplication1.Connect; Except End; ExcelApplication1.Visible[0]:=True;增加一个Workbook。ExcelWorkbook1.ConnectTo(ExcelApplication1. Workbooks.Add(EmptyParam,0)); 添加一个Worksheet。 varTemp_Worksheet: _WorkSheet;beginTryTemp_Worksheet:=ExcelWorkbook1.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;//(注意)ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);ExceptShowMessage('Failure'); End; end; 关闭Excel. Try ExcelApplication1.Quit;ExcelWorksheet1.Disconnect; ExcelWorkbook1.Disconnect; ExcelApplication1.Disconnect; Except End;---- 4. 对Excel的一些操作: 选择当前Workbook的某一Worksheet.procedure TForm1.ComboBox1DropDown(Sender: TObject);var i: Integer;begin ComboBox1.Clear; For i:=1 to ExcelWorkbook1.Worksheets.Count do ComboBox1.Items.Add((ExcelWorkbook1.Worksheets.Item[i] as _WorkSheet).Name);end; procedure TForm1.ComboBox1Change(Sender: TObject);begin ExcelWorkSheet1.ConnectTo(ExcelWorkbook1.Worksheets.Item [ComboBox1.ItemIndex+1] as _WorkSheet); ExcelWorkSheet1.Activate;end; 选择某一Workbook:procedure TForm1.ComboBox2DropDown(Sender: TObject);var i: Integer;beginComboBox2.Clear;if ExcelApplication1.Workbooks.Count >0 thenFor i:=1 to ExcelApplication1.Workbooks.Count doCombobox2.Items.Add(ExcelApplication1. Workbooks.Item[i].Name);end; procedure TForm1.ComboBox2Change(Sender: TObject);beginExcelWorkSheet1.Disconnect;ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Item[Combobox2.ItemIndex+1]); ExcelWorkBook1.Activate; ExcelWorksheet1.ConnectTo(ExcelWorkBook1. ActiveSheet as _WorkSheet); ExcelWorkSheet1.Activate;end; 对某一单元格进行赋值及取值。procedure TForm1.Button5Click(Sender: TObject);begin ExcelWorksheet1.Cells.Item[SpinEdit2.Value, SpinEdit1.Value]:=Edit1.Text;end; procedure TForm1.Button6Click(Sender: TObject);begin Edit1.Text:=ExcelWorksheet1.Cells.Item[ SpinEdit2.Value,SpinEdit1.Value];end; 选择某一区域ExcelWorkSheet1.Range['A1','C1'].Select; 打开一个Excel文件。 if OpenDialog1.Execute then Begin TryExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Open (OpenDialog1.FileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)); ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet as _Worksheet); Except; End; End;
1. 创建一个普通Application。 2. 在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。 3. 连接Excel 97,具体方法如下: 打开Excel97。Try ExcelApplication1.Connect; Except End; ExcelApplication1.Visible[0]:=True;增加一个Workbook。ExcelWorkbook1.ConnectTo(ExcelApplication1. Workbooks.Add(EmptyParam,0)); 添加一个Worksheet。 varTemp_Worksheet: _WorkSheet;beginTryTemp_Worksheet:=ExcelWorkbook1.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;//(注意)ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);ExceptShowMessage('Failure'); End; end; 关闭Excel. Try ExcelApplication1.Quit;ExcelWorksheet1.Disconnect; ExcelWorkbook1.Disconnect; ExcelApplication1.Disconnect; Except End;---- 4. 对Excel的一些操作: 选择当前Workbook的某一Worksheet.procedure TForm1.ComboBox1DropDown(Sender: TObject);var i: Integer;begin ComboBox1.Clear; For i:=1 to ExcelWorkbook1.Worksheets.Count do ComboBox1.Items.Add((ExcelWorkbook1.Worksheets.Item[i] as _WorkSheet).Name);end; procedure TForm1.ComboBox1Change(Sender: TObject);begin ExcelWorkSheet1.ConnectTo(ExcelWorkbook1.Worksheets.Item [ComboBox1.ItemIndex+1] as _WorkSheet); ExcelWorkSheet1.Activate;end; 选择某一Workbook:procedure TForm1.ComboBox2DropDown(Sender: TObject);var i: Integer;beginComboBox2.Clear;if ExcelApplication1.Workbooks.Count >0 thenFor i:=1 to ExcelApplication1.Workbooks.Count doCombobox2.Items.Add(ExcelApplication1. Workbooks.Item[i].Name);end; procedure TForm1.ComboBox2Change(Sender: TObject);beginExcelWorkSheet1.Disconnect;ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Item[Combobox2.ItemIndex+1]); ExcelWorkBook1.Activate; ExcelWorksheet1.ConnectTo(ExcelWorkBook1. ActiveSheet as _WorkSheet); ExcelWorkSheet1.Activate;end; 对某一单元格进行赋值及取值。procedure TForm1.Button5Click(Sender: TObject);begin ExcelWorksheet1.Cells.Item[SpinEdit2.Value, SpinEdit1.Value]:=Edit1.Text;end; procedure TForm1.Button6Click(Sender: TObject);begin Edit1.Text:=ExcelWorksheet1.Cells.Item[ SpinEdit2.Value,SpinEdit1.Value];end; 选择某一区域ExcelWorkSheet1.Range['A1','C1'].Select; 打开一个Excel文件。 if OpenDialog1.Execute then Begin TryExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Open (OpenDialog1.FileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)); ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet as _Worksheet); Except; End; End;
procedure TFrmDtcx.Button2Click(Sender: TObject);
Var i,j:integer;
XLApp:Variant;
WorkBook:Variant;
Sheet:Variant;
begin
//尝试创建Excel对象
try
XLApp:=CreateOleObject('Excel.Application');
XLApp.visible:=False;
except
ShowMessage('您的机器没有安装Excel');
exit;
end;
//尝试打开Table.xls
try
workBook:=XLApp.workBooks.Open(ExtractFilePath(application.ExeName)+'\Table.xls');
except
ShowMessage('不能打开文件Table.xls');
exit;
end; //尝试向sheet:DTCX写入数据
try
sheet:=XLApp.WorkBooks[1].WorkSheets['动态查询'];
//首先清除原有数据
sheet.Cells.ClearContents; sheet.Cells(2,1):='行业类别:'+CBLeiBie.Text;
sheet.Cells(3,1):='资金来源:'+CBDiQu.Text;
sheet.Cells(3,3):='招商单位:'+CBDw.Text;
sheet.Cells(4,1):='查询条件:'+CBLeiXing.Text+CBZhiBiao.Text+CBComp1.Text+Edit1.Text+' '+CBLogic.Text+' '+CBZhiBiao2.Text+CBComp2.Text+Edit2.Text+'万元';
PBar.Max:=StringGrid1.RowCount-1;
PBar.Min:=0;
PBar.Position:=0;
for i:=0 to StringGrid1.RowCount-1 do
begin
PBar.Position:=i;
for j:=0 to StringGrid1.ColCount-1 do
sheet.Cells(i+6,j+1):=StringGrid1.Cells[j,i];
end;
PBar.Position:=0; XLApp.WorkBooks[1].Save;
WorkBook.Close;
XLApp.quit;
showMessage('数据已经输出到到Table.xls的(动态查询)表');
except
WorkBook.Close;
XLApp.quit;
showMessage('(动态查询)不能正确操作Excel文件,可能是该文件已被其他程序打开,或系统错误');
end;end;//打印
procedure TFrmDtcx.Button3Click(Sender: TObject);
Var i,j:integer;
XLApp:Variant;
WorkBook:Variant;
Sheet:Variant;
begin
//尝试创建Excel对象
try
XLApp:=CreateOleObject('Excel.Application');
XLApp.visible:=False;
except
ShowMessage('您的机器没有安装Excel');
exit;
end;
//尝试打开Table.xls
try
workBook:=XLApp.workBooks.Open(ExtractFilePath(application.ExeName)+'\Table.xls');
except
ShowMessage('不能打开文件Table.xls');
exit;
end;
//尝试向sheet:lzdq写入数据
try
sheet:=XLApp.WorkBooks[1].WorkSheets['动态查询'];
//首先清除原有数据
sheet.Cells.ClearContents; sheet.Cells(2,1):='行业类别:'+CBLeiBie.Text;
sheet.Cells(3,1):='资金来源:'+CBDiQu.Text;
sheet.Cells(3,3):='招商单位:'+CBDw.Text;
sheet.Cells(4,1):='查询条件:'+CBLeiXing.Text+CBZhiBiao.Text+CBComp1.Text+Edit1.Text+' '+CBLogic.Text+' '+CBZhiBiao2.Text+CBComp2.Text+Edit2.Text+'万元'; PBar.Max:=StringGrid1.RowCount-1;
PBar.Min:=0;
PBar.Position:=0;
for i:=0 to StringGrid1.RowCount-1 do
begin
PBar.Position:=i;
for j:=0 to StringGrid1.ColCount-1 do
sheet.Cells(i+6,j+1):=StringGrid1.Cells[j,i];
end;
PBar.Position:=0; XLApp.WorkBooks[1].Save;
XLApp.WorkBooks[1].WorkSheets['动态查询'].PrintOut;
WorkBook.Close;
XLApp.quit;
except
WorkBook.Close;
XLApp.quit;
showMessage('(动态查询)不能正确操作Excel文件,可能是该文件已被其他程序打开,或系统错误');
end;
end;
记得要
uses ComObj