您的位置:首页 > 编程语言 > Delphi

在Delphi中通过OLE方式写Excel文件

2006-10-18 12:51 267 查看
报表的打印是每个项目都会遇到的问题。由于报表格式要求五花八门,往往又同时要求打印格式可方便调整。作为一种替代方法,可以将需要打印的报表导出到Excel/Word,打印交给Office去吧

。由于Office的普及度较高,用户比较熟悉,也容易接受。


下面主要是在开发中涉及到的在Delphi中写Excel文件方面的问题,直接用代码行来举例说明。测试所用Excel的版本为9.0,即Excel2000

1、总的思路是将EXCEL作为一个OLE对象来操作。
//在单元use部分加上:ComObj, Excel2000,并作如下定义:
var ExcelApp, Book, Sheet, Range: Variant;

2、Excel程序对象的操作/设置
//创建
ExcelApp := CreateOleObject( 'Excel.Application' );
//设置Excel窗口可见
ExcelApp.Visible := True;

//增加一个工作簿
ExcelApp.WorkBooks.Add;
Book := ExcelApp.Workbooks[1];

//增加一个工作表
Book.Worksheets.Add;
Sheet := Book.Worksheets[1];

//保存文件
Sheet.SaveAs(FileName);

//退出Excel与释出
if not VarIsEmpty(ExcelApp) then
ExcelApp.Quit;
ExcelApp := Unassigned;

3、区域操作/设置
//引用
Range := Sheet.Range['A2:B3'];
//合并
Range.Merge;
//赋值
Range.Value := ''赋值';
//格式
Range.NumberFormatLocal := '@'; //数字格式设置为文本
Range.NumberFormatLocal := 'yyyy-m-d'; //数字格式设置为yyyy-m-d日期
Range.HorizontalAlignment := xlCenter; //水平对齐
Range.VerticalAlignment := xlCenter; //垂直对齐
Range.Font.Name := '黑体'; //字体
Range.Font.Size := 18;
Range.Font.Bold := true;
//边框
Range.Borders[xlEdgeLeft].LineStyle := xlContinuous; //左
Range.Borders[xlEdgeLeft].Weight := xlThin;
Range.Borders[xlEdgeRight].LineStyle := xlContinuous; //右
Range.Borders[xlEdgeRight].Weight := xlThin;
Range.Borders[xlEdgeTop].LineStyle := xlContinuous; //上
Range.Borders[xlEdgeTop].Weight := xlThin;
Range.Borders[xlEdgeBottom].LineStyle := xlContinuous; //下
Range.Borders[xlEdgeBottom].Weight := xlThin;
Range.Borders[xlInsideHorizontal].LineStyle := xlContinuous; //内竖
Range.Borders[xlInsideHorizontal].Weight := xlThin;
Range.Borders[xlInsideVertical].LineStyle := xlContinuous; //内横
Range.Borders[xlInsideVertical].Weight := xlThin;

4、单元格操作/设置
//单元格采用行、列号引用,设 row、col为行、列号
//赋值
Sheet.Cells(row, col) := '赋值';
//设置格式同区域,改成这样来引用
Sheet.Cells.Item[row, col].HorizontalAlignment := xlCenter;

5、其它
//行高、列宽自适应
Sheet.Cells.Rows.AutoFit;
Sheet.Cells.Columns.AutoFit;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: