【Delphi】汇出Excel时,Excel单元格格式设置(附Delphi操作Excel

更新时间:2024-05-25 05:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

【Delphi】汇出Excel时,Excel单元格格式设置(附Delphi操作Excel方法)

一个例子:

excelworksheet1.Cells.Item[row,3]. numberformatlocal:='$#,##0.00;[红色]-$#,##0.00';

excelworksheet1.Cells.Item[row,3].Formula:='=SUM(R[-'+inttostr(row-rowflag+1)+']C:R[-1]C)';

excelworksheet1.Cells.Item[row,3].Borders[3].LineStyle :=xlContinuous; excelworksheet1.Cells.Item[row,3].Borders[4].LineStyle :=xlDouble; excelworksheet1.Cells.Item[row,4].Borders[3].LineStyle :=xlContinuous; excelworksheet1.Cells.Item[row,4].Borders[4].LineStyle :=xlDouble; excelworksheet1.Cells.Item[row,4].Formula:='=R[-1]C'; 注:不知道公式及格式,均可通过录制宏找出对应公式及格式。 效果如下图:

资料来自网络 单元格设置 1.设置单元格线框

Excel.ActiveSheet.Range[B10:C13].Borders[N].LineStyle := xlNone Excel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin

边框的类型 Borders[N] xlEdgeLeft 左=1 xlEdgeRight 右=2 xlEdgeTop 顶=3 xlEdgeBottom 底=4 xlDiagonalUp 左上右下=5 xlDiagonalDown 左下右上=6 xlEdgeLeft 外部左边框=7 xlEdgeTop 外部上边框=8 xlEdgeBottom 外部下边框=9 xlEdgeRight 外部右边框=10 xlInsideVertical 内部竖线=11 xlInsideHorizontal 内部横线=12

(其中1:为左 2:右 3:顶 4:底 5:斜\\ 6:斜/)

线条类型LineStyle,宽度Weight 单条线的LineStyle := xlContinuous 双条线的LineStyle := xlDouble 虚线 xlHairline 1 实线 xlThin 中实线 xlMedium 粗实线 xlThick

2.给单元格赋值:

Excel.Cells[1,4].Value := 第一行第四列; 3.设置第一行字体属性(隶书,蓝色,加粗,下划线): Excel.ActiveSheet.Rows[1].Font.Name := 隶书; Excel.ActiveSheet.Rows[1].Font.Color := clBlue; Excel.ActiveSheet.Rows[1].Font.Bold := True; Excel.ActiveSheet.Rows[1].Font.UnderLine := True; 4.设置整个表字体为9 Excel.Cells.Font.Size:=9; 5.在第8行之前插入/删除分页符:

Excel.WorkSheets[1].Rows[8].PageBreak := 1; (0为删除) 6.清除第一行第四列单元格公式:

Excel.ActiveSheet.Cells[1,4].ClearContents;

7.从数字类型转换成文本类型(不知道格式化字符串,请录制宏,抽出宏中格式化字符串。)

excelworksheet1.Cells.Item[row,10].numberformatlocal:='@'; excelworksheet1.Cells.Item[row,10].NumberFormat :='hh:mm:ss' excelworksheet1.Cells.Item[row,9].numberformatlocal:='$#,##0.00;[红色]-$#,##0.00';

8.加公式(不知道公式格式,请录制宏,抽出宏中公式格式。) excelworksheet1.Cells.Item[row,10].Formula:='=R[-1]C+RC[-1]'; ExApp.cells[9+iLoop,6].value:='=SUM(G'+ inttostr(9+iLoop)+':H'+ inttostr(9+iLoop)+')';

附:Delphi操作Excel方法 (一) 使用动态创建的方法 (二) 使用Delphi 控件方法

一) 使用动态创建的方法

首先创建 Excel 对象,使用ComObj: var ExcelApp: Variant;

ExcelApp := CreateOleObject( 'Excel.Application' );

1) 显示当前窗口:ExcelApp.Visible := True;

2) 更改 Excel 标题栏:ExcelApp.Caption := '应用程序调用 Microsoft Excel'; 3) 添加新工作簿:ExcelApp.WorkBooks.Add;

4) 打开已存在的工作簿:ExcelApp.WorkBooks.Open( 'C:\\Excel\\Demo.xls' ); 5) 设置第2个工作表为活动工作表:ExcelApp.WorkSheets[2].Activate; 或 ExcelApp.WorksSheets[ 'Sheet2' ].Activate;

6) 给单元格赋值:ExcelApp.Cells[1,4].Value := '第一行第四列'; 7) 设置指定列的宽度(单位:字符个数),以第一列为例:

ExcelApp.ActiveSheet.Columns[1].ColumnWidth := 5;

8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米

9) 在第8行之前插入分页符:ExcelApp.WorkSheets[1].Rows.PageBreak := 1; 10) 在第8列之前删除分页符:

ExcelApp.ActiveSheet.Columns[4].PageBreak := 0; 11) 指定边框线宽度:

ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3; 1-左 2-右 3-顶 4-底 5-斜( \\ ) 6-斜( / ) 12) 清除第一行第四列单元格公式:

ExcelApp.ActiveSheet.Cells[1,4].ClearContents; 13) 设置第一行字体属性:

ExcelApp.ActiveSheet.Rows[1].Font.Name := '隶书'; ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue; ExcelApp.ActiveSheet.Rows[1].Font.Bold := True; ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;

14) 进行页面设置: a.页眉:

ExcelApp.ActiveSheet.PageSetup.CenterHeader := '报表演示'; b.页脚:

ExcelApp.ActiveSheet.PageSetup.CenterFooter := '第&P页'; c.页眉到顶端边距2cm:

ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035; d.页脚到底端边距3cm:

ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3/0.035; e.顶边距2cm:

ExcelApp.ActiveSheet.PageSetup.TopMargin := 2/0.035; f.底边距2cm:

ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2/0.035; g.左边距2cm:

ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2/0.035; h.右边距2cm:

ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035; i.页面水平居中:

ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; j.页面垂直居中:

ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035; k.打印单元格网线:

ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;

15) 拷贝操作: a.拷贝整个工作表:

ExcelApp.ActiveSheet.Used.Range.Copy; b.拷贝指定区域:

ExcelApp.ActiveSheet.Range[ 'A1:E2' ].Copy; c.从A1位置开始粘贴:

ExcelApp.ActiveSheet.Range.[ 'A1' ].PasteSpecial; d.从文件尾部开始粘贴:

ExcelApp.ActiveSheet.Range.PasteSpecial;

16) 插入一行或一列:

a. ExcelApp.ActiveSheet.Rows[2].Insert; b. ExcelApp.ActiveSheet.Columns[1].Insert; 17) 删除一行或一列:

a. ExcelApp.ActiveSheet.Rows[2].Delete; b. ExcelApp.ActiveSheet.Columns[1].Delete; 18) 打印预览工作表:

ExcelApp.ActiveSheet.PrintPreview; 19) 打印输出工作表:

ExcelApp.ActiveSheet.PrintOut; 20) 工作表保存:

if not ExcelApp.ActiveWorkBook.Saved then ExcelApp.ActiveSheet.PrintPreview; 21) 工作表另存为:

ExcelApp.SaveAs( 'C:\\Excel\\Demo1.xls' );

22) 放弃存盘:

ExcelApp.ActiveWorkBook.Saved := True; 23) 关闭工作簿:

ExcelApp.WorkBooks.Close; 24) 退出 Excel: ExcelApp.Quit; 25)锁定 Excel:

ExcelApp.Cells.Select;//Select All Cells

ExcelApp.Selection.Locked = True;// Lock Selected Cells

(二) 使用Delphi 控件方法

在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。 1) 打开Excel :ExcelApplication1.Connect; 2) 显示当前窗口:ExcelApplication1.Visible[0]:=True;

3) 更改 Excel 标题栏:ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';

4) 添加新工作簿:

ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));

5) 添加新工作表:

var Temp_Worksheet: _WorkSheet; begin

Temp_Worksheet:=ExcelWorkbook1.

WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;

ExcelWorkSheet1.ConnectTo(Temp_WorkSheet); End;

6) 打开已存在的工作簿:

ExcelApplication1.Workbooks.Open (c:\\a.xls

EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)

7) 设置第2个工作表为活动工作表: ExcelApplication1.WorkSheets[2].Activate; 或 ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;

8) 给单元格赋值:

ExcelApplication1.Cells[1,4].Value := '第一行第四列';

9) 设置指定列的宽度(单位:字符个数),以第一列为例: ExcelApplication1.ActiveSheet.Columns[1].ColumnWidth := 5;

10) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例: ExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米

11) 在第8行之前插入分页符:

ExcelApplication1.WorkSheets[1].Rows.PageBreak := 1;

12) 在第8列之前删除分页符:

ExcelApplication1.ActiveSheet.Columns[4].PageBreak := 0;

13) 指定边框线宽度:

ExcelApplication1.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3; 1-左 2-右 3-顶 4-底 5-斜( \\ ) 6-斜( / )

14) 清除第一行第四列单元格公式:

ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;

15) 设置第一行字体属性:

ExcelApplication1.ActiveSheet.Rows[1].Font.Name := '隶书'; ExcelApplication1.ActiveSheet.Rows[1].Font.Color := clBlue; ExcelApplication1.ActiveSheet.Rows[1].Font.Bold := True; ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine := True; 设置第9列为文本,避免AMT被科学计数,当然在前加'也可解决此问题

excelworksheet1.Cells.Item[row,9].numberformatlocal:='@';

16) 进行页面设置: a.页眉:

ExcelApplication1.ActiveSheet.PageSetup.CenterHeader := '报表演示'; b.页脚:

ExcelApplication1.ActiveSheet.PageSetup.CenterFooter := '第&P页'; c.页眉到顶端边距2cm:

ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 2/0.035; d.页脚到底端边距3cm:

ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 3/0.035; e.顶边距2cm:

ExcelApplication1.ActiveSheet.PageSetup.TopMargin := 2/0.035; f.底边距2cm:

ExcelApplication1.ActiveSheet.PageSetup.BottomMargin := 2/0.035; g.左边距2cm:

ExcelApplication1.ActiveSheet.PageSetup.LeftMargin := 2/0.035; h.右边距2cm:

ExcelApplication1.ActiveSheet.PageSetup.RightMargin := 2/0.035; i.页面水平居中:

ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; j.页面垂直居中:

ExcelApplication1.ActiveSheet.PageSetup.CenterVertically := 2/0.035; k.打印单元格网线:

ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True;

17) 拷贝操作:

a.拷贝整个工作表:

ExcelApplication1.ActiveSheet.Used.Range.Copy;

b.拷贝指定区域:

ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;

c.从A1位置开始粘贴:

ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;

d.从文件尾部开始粘贴:

ExcelApplication1.ActiveSheet.Range.PasteSpecial;

18) 插入一行或一列:

a. ExcelApplication1.ActiveSheet.Rows[2].Insert; b. ExcelApplication1.ActiveSheet.Columns[1].Insert;

19) 删除一行或一列:

a. ExcelApplication1.ActiveSheet.Rows[2].Delete; b. ExcelApplication1.ActiveSheet.Columns[1].Delete;

20) 打印预览工作表:

ExcelApplication1.ActiveSheet.PrintPreview;

21) 打印输出工作表:

ExcelApplication1.ActiveSheet.PrintOut;

22) 工作表保存:

if not ExcelApplication1.ActiveWorkBook.Saved then ExcelApplication1.ActiveSheet.PrintPreview;

23) 工作表另存为:

ExcelApplication1.SaveAs( 'C:\\Excel\\Demo1.xls' );

24) 放弃存盘:

ExcelApplication1.ActiveWorkBook.Saved := True;

25) 关闭工作簿:

ExcelApplication1.WorkBooks.Close;

26) 退出 Excel: ExcelApplication1.Quit; ExcelApplication1.Disconnect;

本文来源:https://www.bwwdw.com/article/gtb7.html

Top