一使用动态创建的方法
首先创建 Excel 对象使用ComObj:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( ExcelApplication );
) 显示当前窗口
ExcelAppVisible := True;
) 更改 Excel 标题栏
ExcelAppCaption := 应用程序调用 Microsoft Excel;
) 添加新工作簿
ExcelAppWorkBooksAdd;
) 打开已存在的工作簿
ExcelAppWorkBooksOpen( C:\Excel\Demoxls );
) 设置第个工作表为活动工作表
ExcelAppWorkSheets[]Activate; 或 ExcelAppWorksSheets[ Sheet ]Activate;
) 给单元格赋值
ExcelAppCells[]Value := 第一行第四列;
) 设置指定列的宽度(单位字符个数)以第一列为例
ExcelAppActiveSheetColumns[]ColumnsWidth := ;
) 设置指定行的高度(单位磅)(磅=厘米)以第二行为例
ExcelAppActiveSheetRows[]RowHeight := /; // 厘米
) 在第行之前插入分页符
ExcelAppWorkSheets[]Rows[]PageBreak := ;
) 在第列之前删除分页符
ExcelAppActiveSheetColumns[]PageBreak := ;
) 指定边框线宽度
ExcelAppActiveSheetRange[ B:D ]Borders[]Weight := ;
左 右 顶 底 斜( \ ) 斜( / )
) 清除第一行第四列单元格公式
ExcelAppActiveSheetCells[]ClearContents;
) 设置第一行字体属性
ExcelAppActiveSheetRows[]FontName := 隶书;
ExcelAppActiveSheetRows[]FontColor := clBlue;
ExcelAppActiveSheetRows[]FontBold := True;
ExcelAppActiveSheetRows[]FontUnderLine := True;
) 进行页面设置
a页眉
ExcelAppActiveSheetPageSetupCenterHeader := 报表演示;
b页脚
ExcelAppActiveSheetPageSetupCenterFooter := 第&P页;
c页眉到顶端边距cm
ExcelAppActiveSheetPageSetupHeaderMargin := /;
d页脚到底端边距cm
ExcelAppActiveSheetPageSetupHeaderMargin := /;
e顶边距cm
ExcelAppActiveSheetPageSetupTopMargin := /;
f底边距cm
ExcelAppActiveSheetPageSetupBottomMargin := /;
g左边距cm
ExcelAppActiveSheetPageSetupLeftMargin := /;
h右边距cm
ExcelAppActiveSheetPageSetupRightMargin := /;
i页面水平居中
ExcelAppActiveSheetPageSetupCenterHorizontally := /;
j页面垂直居中
ExcelAppActiveSheetPageSetupCenterVertically := /;
k打印单元格网线
ExcelAppActiveSheetPageSetupPrintGridLines := True;
) 拷贝操作
a拷贝整个工作表
ExcelAppActiveSheetUsedRangeCopy;
b拷贝指定区域
ExcelAppActiveSheetRange[ A:E ]Copy;
c从A位置开始粘贴
ExcelAppActiveSheetRange[ A ]PasteSpecial;
d从文件尾部开始粘贴
ExcelAppActiveSheetRangePasteSpecial;
) 插入一行或一列
a ExcelAppActiveSheetRows[]Insert;
b ExcelAppActiveSheetColumns[]Insert;
) 删除一行或一列
a ExcelAppActiveSheetRows[]Delete;
b ExcelAppActiveSheetColumns[]Delete;
) 打印预览工作表
ExcelAppActiveSheetPrintPreview;
) 打印输出工作表
ExcelAppActiveSheetPrintOut;
) 工作表保存
if not ExcelAppActiveWorkBookSaved then ExcelAppActiveSheetPrintPreview;
) 工作表另存为
ExcelAppSaveAs( C:\Excel\Demoxls );
) 放弃存盘
ExcelAppActiveWorkBookSaved := True;
) 关闭工作簿
ExcelAppWorkBooksClose;
) 退出 Excel
ExcelAppQuit;
二使用Delphi 控件方法在Form中分别放入ExcelApplication ExcelWorkbook和ExcelWorksheet
) 打开Excel
ExcelApplicationConnect;
) 显示当前窗口
ExcelApplicationVisible[]:=True;
) 更改 Excel 标题栏
ExcelApplicationCaption := 应用程序调用 Microsoft Excel;
) 添加新工作簿
ExcelWorkbookConnectTo(ExcelApplicationWorkbooksAdd(EmptyParam));
) 添加新工作表
var Temp_Worksheet: _WorkSheet;
begin
Temp_Worksheet:=ExcelWorkbook
WorkSheetsAdd(EmptyParamEmptyParamEmptyParamEmptyParam) as _WorkSheet;
ExcelWorkSheetConnectTo(Temp_WorkSheet);
End;
) 打开已存在的工作簿
ExcelApplicationWorkbooksOpen (c:\axls EmptyParamEmptyParamEmptyParamEmptyParam
EmptyParamEmptyParamEmptyParamEmptyParamEmptyParamEmptyParamEmptyParamEmptyParam)
) 设置第个工作表为活动工作表
ExcelApplicationWorkSheets[]Activate; 或 ExcelApplicationWorksSheets[ Sheet ]Activate;
) 给单元格赋值
ExcelApplicationCells[]Value := 第一行第四列;
) 设置指定列的宽度(单位字符个数)以第一列为例
ExcelApplicationActiveSheetColumns[]ColumnsWidth := ;
) 设置指定行的高度(单位磅)(磅=厘米)以第二行为例
ExcelApplicationActiveSheetRows[]RowHeight := /; // 厘米
) 在第行之前插入分页符
ExcelApplicationWorkSheets[]Rows[]PageBreak := ;
) 在第列之前删除分页符
ExcelApplicationActiveSheetColumns[]PageBreak := ;
) 指定边框线宽度
ExcelApplicationActiveSheetRange[ B:D ]Borders[]Weight := ;
左 右 顶 底 斜( \ ) 斜( / )
) 清除第一行第四列单元格公式
ExcelApplicationActiveSheetCells[]ClearContents;
) 设置第一行字体属性
ExcelApplicationActiveSheetRows[]FontName := 隶书;
ExcelApplicationActiveSheetRows[]FontColor := clBlue;
ExcelApplicationActiveSheetRows[]FontBold := True;
ExcelApplicationActiveSheetRows[]FontUnderLine := True;
) 进行页面设置
a页眉
ExcelApplicationActiveSheetPageSetupCenterHeader := 报表演示;
b页脚
ExcelApplicationActiveSheetPageSetupCenterFooter := 第&P页;
c页眉到顶端边距cm
ExcelApplicationActiveSheetPageSetupHeaderMargin := /;
d页脚到底端边距cm
ExcelApplicationActiveSheetPageSetupHeaderMargin := /;
e顶边距cm
ExcelApplicationActiveSheetPageSetupTopMargin := /;
f底边距cm
ExcelApplicationActiveSheetPageSetupBottomMargin := /;
g左边距cm
ExcelApplicationActiveSheetPageSetupLeftMargin := /;
h右边距cm
ExcelApplicationActiveSheetPageSetupRightMargin := /;
i页面水平居中
ExcelApplicationActiveSheetPageSetupCenterHorizontally := /;
j页面垂直居中
ExcelApplicationActiveSheetPageSetupCenterVertically := /;
k打印单元格网线
ExcelApplicationActiveSheetPageSetupPrintGridLines := True;
) 拷贝操作
a拷贝整个工作表
ExcelApplicationActiveSheetUsedRangeCopy;
b拷贝指定区域
ExcelApplicationActiveSheetRange[ A:E ]Copy;
c从A位置开始粘贴
ExcelApplicationActiveSheetRange[ A ]PasteSpecial;
d从文件尾部开始粘贴
ExcelApplicationActiveSheetRangePasteSpecial;
) 插入一行或一列
a ExcelApplicationActiveSheetRows[]Insert;
b ExcelApplicationActiveSheetColumns[]Insert;
) 删除一行或一列
a ExcelApplicationActiveSheetRows[]Delete;
b ExcelApplicationActiveSheetColumns[]Delete;
) 打印预览工作表
ExcelApplicationActiveSheetPrintPreview;
) 打印输出工作表
ExcelApplicationActiveSheetPrintOut;
) 工作表保存
if not ExcelApplicationActiveWorkBookSaved then ExcelApplicationActiveSheetPrintPreview;
) 工作表另存为
ExcelApplicationSaveAs( C:\Excel\Demoxls );
) 放弃存盘
ExcelApplicationActiveWorkBookSaved := True;
) 关闭工作簿
ExcelApplicationWorkBooksClose;
) 退出 Excel
ExcelApplicationQuit;
ExcelApplicationDisconnect;
三使用Delphi 控制Excle二维图
在Form中分别放入ExcelApplication ExcelWorkbook和ExcelWorksheet var asheetachart range:variant;
)选择当第一个工作薄第一个工作表
asheet:=ExcelApplicationWorkbooks[]Worksheets[];
)增加一个二维图
achart:=asheetchartobjectsadd();
)选择二维图的形态
achartchartcharttype:=;
)给二维图赋值
series:=achartchartseriescollection;
range:=sheet!rc:rc;
seriesadd(rangetrue);
)加上二维图的标题
achartChartHasTitle:=True;
achartChartChartTitleCharactersText:= Excle二维图
)改变二维图的标题字体大小
achartChartChartTitleFontsize:=;
)给二维图加下标说明
achartChartAxes(xlCategory xlPrimary)HasTitle := True;
achartChartAxes(xlCategory xlPrimary)AxisTitleCharactersText := 下标说明;
)给二维图加左标说明
achartChartAxes(xlValue xlPrimary)HasTitle := True;
achartChartAxes(xlValue xlPrimary)AxisTitleCharactersText := 左标说明;
)给二维图加右标说明
achartChartAxes(xlValue xlSecondary)HasTitle := True;
achartChartAxes(xlValue xlSecondary)AxisTitleCharactersText := 右标说明;
)改变二维图的显示区大小
achartChartPlotAreaLeft := ;
achartChartPlotAreaWidth := ;
achartChartPlotAreaHeight := ;
)给二维图坐标轴加上说明
achartchartseriescollection[]NAME:=坐标轴说明;
EMail: sunxiyu@gdsoftnet
wuxy@gdsoftnet