首先创建 Excel 对象,使用ComObj:
var ExcelID: Variant;
ExcelID := CreateOleObject( 'Excel.Application' );
1) 显示当前窗口:
ExcelID.Visible := True;
2) 更改 Excel 标题栏:
ExcelID.Caption := '应用程序调用 Microsoft Excel';
3) 添加新工作簿:
ExcelID.WorkBooks.Add;
4) 打开已存在的工作簿:
ExcelID.WorkBooks.Open( 'C:\Excel\Demo.xls' );
5) 设置第2个工作表为活动工作表:
ExcelID.WorkSheets[2].Activate;  
或 
ExcelID.WorksSheets[ 'Sheet2' ].Activate;
6) 给单元格赋值:
ExcelID.Cells[1,4].Value := '第一行第四列';
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;
10) 在第8列之前删除分页符:
ExcelID.ActiveSheet.Columns[4].PageBreak := 0;
11) 指定边框线宽度:
ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
1-左    2-右   3-顶    4-底   5-斜( \ )     6-斜( / )
12) 清除第一行第四列单元格公式:
ExcelID.ActiveSheet.Cells[1,4].ClearContents;
13) 设置第一行字体属性:
ExcelID.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelID.ActiveSheet.Rows[1].Font.Color  := clBlue;
ExcelID.ActiveSheet.Rows[1].Font.Bold   := True;
ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;
14)append(a1,b1);

解决方案 »

  1.   

    用Delphi程序控制Excel的操作
    万重 
    使用VBA可以随心所欲地操作Excel。同样,使用Delphi也能完全控制Excel的所有功能。下面,我们以一个例子来入手吧。在窗口Form1上面加入组件5个Button和1个Checkbox组件,在Uses中加入Comobj单元,在Private加入下面的私有变量:privatev:Variant;Sheet: Variant;{Private declarations}在单击事件中加入如下代码:procedure TForm1.Button1Clic{Sender:TObject};begin//打开EXCEL新建文件tryv:= CreateOleObject('Excel.Application');v.Visible := CheckBox1.Checked;//是否显示EXCELv.Workbooks.Add;//新建EXCEL文件v.Workbooks[1].WorkSheets[1].Name:= '电脑报';//第一页标题v.Workbooks[1].WorkSheets[2].Name = '编程乐园';v.Workbooks[1].WorkSheets[3].Name = '都来看呀';// Sheet:= v.Workbooks[1].WorkSheets['DELPHI演示'];//等效下面的语句Sheet:= v.Workbooks[1].WorkSheets[1];Sheet.Cells[1,1]='好看';//单元格内容Sheet.Cells[1,2]='确实';Sheet.Cells[2,1]='我喜欢';Except//错误处理Showmessage('初始化Excel失败,可能没装Excel,或者其他错误;请重起再试。); v.DisplayAlerts := false;//是否提示存盘v.Quit;//退出EXCELexit;end;Application.Restore;Application.BringToFront;end;其中,Comobj中包含了用来检索OLE的对象和向它传发命令的例程,第一行代码启动Excel,但Excel这时是不可见的,只是在后台运行,所以第二行代码根据CheckBox1.Checked来确定是否显示EXCEL运行界面。如果要需要打开本身存在的EXCEL文件,则用v.Workbooks.Open(OpenDialog1.FileName);代替v.Workbooks.Add;就可以了。Sheet对象是很多页的集合,其他的Workbooks是工作簿的集合,WorkSheets对象是工作表的集合,Charts对象是图表的集合。//EXCEL文档格式设置procedure TForm1.Button5Click(Sender: TObject);varRange: Variant;beginif OpenDialog1.Execute thenbegintryv:= CreateOleObject('Excel.Application');v.Visible := CheckBox1.Checked;v.Workbooks.Open(OpenDialog1.FileName);Range := v.Workbooks[1].WorkSheets[1].Range['A2:G2'];//单元格从A2到M2Range.Merge; //合并单元格Range.Rows.RowHeight := 50; //设置行高Range.Borders.LineStyle := 1; //加边框Range.Columns[2].ColumnWidth := 12; // 设置列宽Range.FormulaR1C1 := '合并区';Range.HorizontalAlignment := 3;//xlCenter(水平对齐方式)Range.VerticalAlignment := 2;//xlCenter(垂直对齐方式)Range.Characters.Font.Name := '宋体'; //字体Range.Characters.Font.FontStyle: = '加粗';Range.Characters.Font.Size := 15;Range.Characters.Font.OutlineFont := False;//是否有下划线Range.Characters.Font.ColorIndex := 0;//xlAutomatic//颜色except//出错处理,同Button1;end;end;end;//EXCEL打印页面设置及打印预揽procedure TForm1.Button4Click(Sender: TObject);beginif OpenDialog1.Execute thenbegintryv:= CreateOleObject('Excel.Application');v.Visible := CheckBox1.Checked;v.Workbooks.Open(OpenDialog1.FileName);Sheet:=v.Workbooks[1].WorkSheets[1];Sheet.PageSetup.PrintTitleRows :='$1:$3'; //页眉Sheet.PageSetup.PrintTitleColumns := '';Sheet.PageSetup.LeftFooter := '; 注:页脚'+' 总共&N页'+'--第&P页'; //页脚Sheet.PageSetup.LeftMargin := 30; //设置边距Sheet.PageSetup.RightMargin := 30;Sheet.PageSetup.TopMargin := 30;Sheet.PageSetup.BottomMargin := 50;//Sheet.PageSetup.PrintQuality := 400; //分辨率根据打印机确定Sheet.PageSetup.CenterHorizontally := True;//是否水平居中Sheet.PageSetup.CenterVertically := True; //是否垂直居中Sheet.PageSetup.Orientation := 2; //横向打印Sheet.PageSetup.Draft := False; //非草稿模式//Sheet.PageSetup.FirstPageNumber := xlAutomatic;Sheet.PageSetup.BlackAndWhite := True;//黑白稿Sheet.PageSetup.Zoom := 100; //缩放sheet.PrintPreView; //打印预览except//出错处理end;end;end;最后就是要关闭Excel了。在创建了Excel Application对象后,调用它的Quit方法完成关闭事件。//关闭EXCEL并退出procedure TForm1.Button3Click(Sender: TObject);begintryIf not varIsEmpty(v) thenbegin// 如果需要在关闭前确定是否存盘,加入:// v.DiaplayAlert:=true; //确定存盘// v.DiaplayAlert:=false;//不存盘,直接退出v.WorkBooks[1].Close(True, 'C:\untitled.xls');//取文件名退出v.quit;end;finallyClose;end;end;
      

  2.   

    用Delphi程序控制Excel的操作
    万重 
    使用VBA可以随心所欲地操作Excel。同样,使用Delphi也能完全控制Excel的所有功能。下面,我们以一个例子来入手吧。在窗口Form1上面加入组件5个Button和1个Checkbox组件,在Uses中加入Comobj单元,在Private加入下面的私有变量:privatev:Variant;Sheet: Variant;{Private declarations}在单击事件中加入如下代码:procedure TForm1.Button1Clic{Sender:TObject};begin//打开EXCEL新建文件tryv:= CreateOleObject('Excel.Application');v.Visible := CheckBox1.Checked;//是否显示EXCELv.Workbooks.Add;//新建EXCEL文件v.Workbooks[1].WorkSheets[1].Name:= '电脑报';//第一页标题v.Workbooks[1].WorkSheets[2].Name = '编程乐园';v.Workbooks[1].WorkSheets[3].Name = '都来看呀';// Sheet:= v.Workbooks[1].WorkSheets['DELPHI演示'];//等效下面的语句Sheet:= v.Workbooks[1].WorkSheets[1];Sheet.Cells[1,1]='好看';//单元格内容Sheet.Cells[1,2]='确实';Sheet.Cells[2,1]='我喜欢';Except//错误处理Showmessage('初始化Excel失败,可能没装Excel,或者其他错误;请重起再试。); v.DisplayAlerts := false;//是否提示存盘v.Quit;//退出EXCELexit;end;Application.Restore;Application.BringToFront;end;其中,Comobj中包含了用来检索OLE的对象和向它传发命令的例程,第一行代码启动Excel,但Excel这时是不可见的,只是在后台运行,所以第二行代码根据CheckBox1.Checked来确定是否显示EXCEL运行界面。如果要需要打开本身存在的EXCEL文件,则用v.Workbooks.Open(OpenDialog1.FileName);代替v.Workbooks.Add;就可以了。Sheet对象是很多页的集合,其他的Workbooks是工作簿的集合,WorkSheets对象是工作表的集合,Charts对象是图表的集合。//EXCEL文档格式设置procedure TForm1.Button5Click(Sender: TObject);varRange: Variant;beginif OpenDialog1.Execute thenbegintryv:= CreateOleObject('Excel.Application');v.Visible := CheckBox1.Checked;v.Workbooks.Open(OpenDialog1.FileName);Range := v.Workbooks[1].WorkSheets[1].Range['A2:G2'];//单元格从A2到M2Range.Merge; //合并单元格Range.Rows.RowHeight := 50; //设置行高Range.Borders.LineStyle := 1; //加边框Range.Columns[2].ColumnWidth := 12; // 设置列宽Range.FormulaR1C1 := '合并区';Range.HorizontalAlignment := 3;//xlCenter(水平对齐方式)Range.VerticalAlignment := 2;//xlCenter(垂直对齐方式)Range.Characters.Font.Name := '宋体'; //字体Range.Characters.Font.FontStyle: = '加粗';Range.Characters.Font.Size := 15;Range.Characters.Font.OutlineFont := False;//是否有下划线Range.Characters.Font.ColorIndex := 0;//xlAutomatic//颜色except//出错处理,同Button1;end;end;end;//EXCEL打印页面设置及打印预揽procedure TForm1.Button4Click(Sender: TObject);beginif OpenDialog1.Execute thenbegintryv:= CreateOleObject('Excel.Application');v.Visible := CheckBox1.Checked;v.Workbooks.Open(OpenDialog1.FileName);Sheet:=v.Workbooks[1].WorkSheets[1];Sheet.PageSetup.PrintTitleRows :='$1:$3'; //页眉Sheet.PageSetup.PrintTitleColumns := '';Sheet.PageSetup.LeftFooter := '; 注:页脚'+' 总共&N页'+'--第&P页'; //页脚Sheet.PageSetup.LeftMargin := 30; //设置边距Sheet.PageSetup.RightMargin := 30;Sheet.PageSetup.TopMargin := 30;Sheet.PageSetup.BottomMargin := 50;//Sheet.PageSetup.PrintQuality := 400; //分辨率根据打印机确定Sheet.PageSetup.CenterHorizontally := True;//是否水平居中Sheet.PageSetup.CenterVertically := True; //是否垂直居中Sheet.PageSetup.Orientation := 2; //横向打印Sheet.PageSetup.Draft := False; //非草稿模式//Sheet.PageSetup.FirstPageNumber := xlAutomatic;Sheet.PageSetup.BlackAndWhite := True;//黑白稿Sheet.PageSetup.Zoom := 100; //缩放sheet.PrintPreView; //打印预览except//出错处理end;end;end;最后就是要关闭Excel了。在创建了Excel Application对象后,调用它的Quit方法完成关闭事件。//关闭EXCEL并退出procedure TForm1.Button3Click(Sender: TObject);begintryIf not varIsEmpty(v) thenbegin// 如果需要在关闭前确定是否存盘,加入:// v.DiaplayAlert:=true; //确定存盘// v.DiaplayAlert:=false;//不存盘,直接退出v.WorkBooks[1].Close(True, 'C:\untitled.xls');//取文件名退出v.quit;end;finallyClose;end;end;