Delphi对 Excel表格的各种操作
- 格式:doc
- 大小:17.00 KB
- 文档页数:3
怎么在delphi中读取Excel数据(各种详细操作)转( 一) 使用动态创建的方法首先创建Excel 对象,使用ComObj :VarExcelApp : 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 ] .ColumnsWidth := 5 ;8 ) 设置指定行的高度(单位:磅)(1磅=0.035 厘米),以第二行为例:ExcelApp.ActiveSheet.Rows [ 2 ] .RowHeight := 1 / 0.035 ; // 1厘米9 ) 在第8行之前插入分页符:ExcelApp.WorkSheets [ 1 ] .Rows [ 8 ] .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 ] := '' 隶书'' ;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.拷贝整个工作表:ed.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 ThenExcelApp.ActiveSheet.PrintPreview ;21 ) 工作表另存为:ExcelApp.SaveAs ( '' C : \Excel\Demo1.xls '' ) ;22 ) 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True ;23 ) 关闭工作簿:ExcelApp.WorkBooks.Close ;24 ) 退出Excel:ExcelApp.Quit ;( 二) 使用Delphi 控件方法在Form中分别放入ExcelApplication , ExcelWorkbook和ExcelWorksheet。
【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 := xlNoneExcel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin边框的类型 Borders[N]xlEdgeLeft 左=1xlEdgeRight 右=2xlEdgeTop 顶=3xlEdgeBottom 底=4xlDiagonalUp 左上右下=5xlDiagonalDown 左下右上=6xlEdgeLeft 外部左边框=7xlEdgeTop 外部上边框=8xlEdgeBottom 外部下边框=9xlEdgeRight 外部右边框=10xlInsideVertical 内部竖线=11xlInsideHorizontal 内部横线=12(其中1:为左 2:右 3:顶 4:底 5:斜\ 6:斜/)线条类型LineStyle,宽度Weight单条线的LineStyle := xlContinuous双条线的LineStyle := xlDouble虚线 xlHairline 1实线 xlThin中实线 xlMedium粗实线 xlThick2.给单元格赋值:Excel.Cells[1,4].Value := 第一行第四列;3.设置第一行字体属性(隶书,蓝色,加粗,下划线):Excel.ActiveSheet.Rows[1] := 隶书; Excel.ActiveSheet.Rows[1].Font.Color := clBlue; Excel.ActiveSheet.Rows[1].Font.Bold := True; Excel.ActiveSheet.Rows[1].Font.UnderLine := True;4.设置整个表字体为9Excel.Cells.Font.Size:=9;5.在第8行之前插入/删除分页符:Excel.WorkSheets[1].Rows[8].PageBreak := 1; (0为删除)6.清除第一行第四列单元格公式:Excel.ActiveSheet.Cells[1,4].ClearContents;7.从数字类型转换成文本类型(不知道格式化字符串,请录制宏,抽出宏中格式化字符串。
【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 := xlNoneExcel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin边框的类型 Borders[N]xlEdgeLeft 左=1xlEdgeRight 右=2xlEdgeTop 顶=3xlEdgeBottom 底=4xlDiagonalUp 左上右下=5xlDiagonalDown 左下右上=6xlEdgeLeft 外部左边框=7xlEdgeTop 外部上边框=8xlEdgeBottom 外部下边框=9xlEdgeRight 外部右边框=10xlInsideVertical 内部竖线=11xlInsideHorizontal 内部横线=12(其中1:为左 2:右 3:顶 4:底 5:斜\ 6:斜/)线条类型LineStyle,宽度Weight单条线的LineStyle := xlContinuous双条线的LineStyle := xlDouble虚线 xlHairline 1实线 xlThin中实线 xlMedium粗实线 xlThick2.给单元格赋值:Excel.Cells[1,4].Value := 第一行第四列;3.设置第一行字体属性(隶书,蓝色,加粗,下划线):Excel.ActiveSheet.Rows[1] := 隶书; Excel.ActiveSheet.Rows[1].Font.Color := clBlue; Excel.ActiveSheet.Rows[1].Font.Bold := True; Excel.ActiveSheet.Rows[1].Font.UnderLine := True;4.设置整个表字体为9Excel.Cells.Font.Size:=9;5.在第8行之前插入/删除分页符:Excel.WorkSheets[1].Rows[8].PageBreak := 1; (0为删除)6.清除第一行第四列单元格公式:Excel.ActiveSheet.Cells[1,4].ClearContents;7.从数字类型转换成文本类型(不知道格式化字符串,请录制宏,抽出宏中格式化字符串。
delphi excel 单元格赋值公式摘要:一、Delphi 与Excel 的交互二、单元格的赋值与公式应用三、Delphi 实现Excel 单元格公式的例子正文:一、Delphi 与Excel 的交互Delphi 是一款强大的编程语言,它可以与Excel 进行交互,实现对Excel 文件的读取和写入。
在Delphi 中,我们可以使用特定的库和控件来操作Excel 文件,例如:TExcelConnection、TExcelWorkbook、TExcelSheet 等。
通过这些控件,我们可以实现对Excel 文件的行、列、单元格等进行操作,从而实现数据的读取和写入。
二、单元格的赋值与公式应用在Excel 中,我们可以使用公式来对单元格进行赋值。
公式是Excel 中的一种功能强大的工具,它可以对数据进行计算、分析和处理。
例如,我们可以使用SUM 函数来计算一组数据的和,使用AVERAGE 函数来计算一组数据的平均值等。
在Delphi 中,我们可以通过编写代码来实现对Excel 单元格的公式应用。
三、Delphi 实现Excel 单元格公式的例子以下是一个使用Delphi 实现Excel 单元格公式的例子:```delphiprocedure TForm1.Button1Click(Sender: TObject); varxlapp: Excel.Application;workbook: Excel.Workbook;sheet: Excel.Worksheet;myrange1, myrange2: Excel.Range;variant: Variant;beginxlapp := CreateOleObject("Excel.Application"); xlapp.DisplayAlerts := False;workbook := xlapp.Workbooks.Open("D:Test.xlsx"); sheet := workbook.Worksheets[1];// 创建一个单元格范围myrange1 := sheet.Range["A1:B10"];myrange2 := sheet.Range["A11:B10"];// 在单元格中插入公式variant := myrange1.Value;myrange1.ClearContents();myrange1.Formula = "=SUM(A1:B10)"; myrange1.Value := variant;// 保存并关闭Excel 文件workbook.Save();xlapp.Quit;end;```以上代码首先创建一个Excel 应用程序实例,然后打开一个Excel 文件。
下面是我写的通用文档微机管理系统的打印部分原代码,包括合并execl单元格,加入分页符号,设置行高,列宽,设置execl页头,设置每页记录数,画单元格边框,调用execl模板等等procedure TfrmMain.Button3Click(Sender: TObject); //动态打印excel报表vartiaojian : string; //tiaojian 为一个sql查询语句,全宗号,目录号,起始日期为一数据库字段 begintiaojian := ';if Edit7.Text <> ' thenbegintiaojian := tiaojian + ' ( 全宗号=' + EDit7.Text + ' ) and';end;if Edit8.Text <> ' thenbegintiaojian := tiaojian + ' ( 目录号=' + Edit8.Text + ') and';end;if Edit9.Text <> ' thenbegintiaojian := tiaojian + ' ( 起始日期>= ' + Edit9.Text + ' ) and';endelse tiaojian := tiaojian + ' ( 起始日期>=0) and';if Edit10.Text <> ' thenbegintiaojian := tiaojian + ' ( 起始日期<= ' + Edit10.Text + ' ) and';end;tiaojian := copy(tiaojian, 1, length(tiaojian) - 3); //tiaojian 为一个sql查询语句Printanjuan(tiaojian); //调用打印过程ShellExecute(Handle, 'Open', PChar(GetCurpath + 'temp.xls'), nil, nil, sw_shownormal); //调用excel查看生成的文件ProgressBar1.Position:=0; //ProgressBar1 为一个进程条控件end;procedure TfrmMain.Printanjuan(tiaojiao:string);varnowhangi, i, jilushu, LCID: integer; //nowhangi当前execl的所在行,jilushu当前的记录位置ssql, PathName: string;oldcur: tcursor;ExcelApplication1: TExcelApplication;ExcelWorkbook1: TExcelWorkbook;ExcelWorkSheet1: TExcelWorksheet;xl, Cell1: olevariant;beginLCID := LOCALE_USER_DEFAULT;if FileExists(GetCurpath + 'temp.xls') then //删除动态生成的临时temp.xls文件 tryDeleteFile(GetCurpath + 'temp.xls');exceptend;ssql := '; //执行sql查询ssql := 'select * from mainanjuan where (' + tiaojiao + ') order by 系统编号'; doadosql(dm1.queryanjuan, ssql);begintryExcelApplication1 := TExcelApplication.Create(Self);ExcelWorkbook1 := TExcelWorkbook.Create(Self);ExcelWorkSheet1 := TExcelWorksheet.Create(Self);exceptshowmessage('对不起,您没有安装Excel 2000!');abort;end;end;ExcelApplication1.Connect;ExcelApplication1.Workbooks.Add(null, 0);//如果调用一个模板,改动该句如://ExcelApplication1.Workbooks.Add('c:\zichang.xls', 0);ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks[1]);ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Sheets[1] as _WorkSheet); //写入execlProgressBar1.Position:=5;if dm1.queryanjuan.RecordCount > 0 thenbegin//设置列宽,行高nowhangi := 1;ExcelApplication1.Range['A1', 'A1'].ColumnWidth := 3.5;ExcelApplication1.Range['B1', 'B1'].ColumnWidth := 3.5;ExcelApplication1.Range['C1', 'C1'].ColumnWidth := 3.5;ExcelApplication1.Range['D1', 'D1'].ColumnWidth := 8;ExcelApplication1.Range['E1', 'E1'].ColumnWidth := 20;ExcelApplication1.Range['F1', 'F1'].ColumnWidth := 8.75;ExcelApplication1.Range['G1', 'G1'].ColumnWidth := 8.75;ExcelApplication1.Range['H1', 'H1'].ColumnWidth := 3.0;ExcelApplication1.Range['I1', 'I1'].ColumnWidth := 3.0;ExcelApplication1.Range['J1', 'J1'].ColumnWidth := 3.0;//设置每页的记录数目for jilushu := 1 to (dm1.queryanjuan.RecordCount) dobegin //ProgressBar1 为一个进程条控件ProgressBar1.Position:= (jilushu*100) div (dm1.queryanjuan.RecordCount);tryif jilushu mod strtoint(edit14.Text) = 1 then //edit14.Text的值为一个数字,表示每页的记录数目begin //打印每页的页头ExcelApplication1.Range['A' + inttostr(nowhangi), 'J' +inttostr(nowhangi)].Merge(xl);//合并execl单元格ExcelWorkSheet1.cells.Item[nowhangi, 1] := fontselectbox.FontName; ExcelWorkSheet1.cells.Item[nowhangi, 1].font.size := 24;ExcelWorkSheet1.cells.Item[nowhangi, 1].RowHeight := 32;ExcelWorkSheet1.cells.Item[nowhangi, 1] := '案卷目录';ExcelWorkSheet1.cells.Item[nowhangi, 1].HorizontalAlignment := xlCenter;ExcelWorkSheet1.cells.Item[nowhangi + 1, 1] :=fontselectbox.FontName;ExcelWorkSheet1.cells.Item[nowhangi + 1, 1].font.size := 12;ExcelWorkSheet1.cells.Item[nowhangi + 1, 1].Font.Bold := True;ExcelWorkSheet1.cells.Item[nowhangi + 1, 1].Orientation := xlVertical;ExcelWorkSheet1.cells.Item[nowhangi + 1, 1].VerticalAlignment := xlTop;ExcelWorkSheet1.cells.Item[nowhangi + 1, 1] := '顺序号';ExcelWorkSheet1.cells.Item[nowhangi + 1, 2] :=fontselectbox.FontName;ExcelWorkSheet1.cells.Item[nowhangi + 1, 2].font.size := 12;ExcelWorkSheet1.cells.Item[nowhangi + 1, 2].Font.Bold := True;ExcelWorkSheet1.cells.Item[nowhangi + 1, 2].Orientation := xlVertical;ExcelWorkSheet1.cells.Item[nowhangi + 1, 2].VerticalAlignment := xlTop;ExcelWorkSheet1.cells.Item[nowhangi + 1, 2] := '全宗号';ExcelWorkSheet1.cells.Item[nowhangi + 1, 3] :=fontselectbox.FontName;ExcelWorkSheet1.cells.Item[nowhangi + 1, 3].font.size := 12;ExcelWorkSheet1.cells.Item[nowhangi + 1, 3].Font.Bold := True;ExcelWorkSheet1.cells.Item[nowhangi + 1, 3].Orientation := xlVertical;ExcelWorkSheet1.cells.Item[nowhangi + 1, 3].VerticalAlignment := xlTop;ExcelWorkSheet1.cells.Item[nowhangi + 1, 3] := '目录号';//加入分页符号if (jilushu div strtoint(edit14.Text) > 0) thenbeginCell1 := ExcelWorksheet1.Cells.Item[nowhangi, 11];ExcelWorksheet1.VPageBreaks.Add(Cell1);ExcelWorksheet1.HPageBreaks.Add(Cell1);end;nowhangi := nowhangi + 2;end;//打印查询数据ExcelWorkSheet1.cells.Item[nowhangi, 1].RowHeight := 60;ExcelWorkSheet1.cells.Item[nowhangi, 1] := fontselectbox.FontName; ExcelWorkSheet1.cells.Item[nowhangi, 1].font.size := strtoint(Edit11.text);ExcelWorkSheet1.cells.Item[nowhangi, 1].WrapText := True;ExcelWorkSheet1.cells.Item[nowhangi, 1] := inttostr(jilushu);ExcelWorkSheet1.cells.Item[nowhangi, 2] := fontselectbox.FontName; ExcelWorkSheet1.cells.Item[nowhangi, 2].WrapText := True;ExcelWorkSheet1.cells.Item[nowhangi, 2].font.size := strtoint(Edit11.text);ExcelWorkSheet1.cells.Item[nowhangi, 2] := dm1.queryanjuan.fieldbyname('全宗号').asstring;ExcelWorkSheet1.cells.Item[nowhangi, 3] := fontselectbox.FontName; ExcelWorkSheet1.cells.Item[nowhangi, 3].WrapText := True;ExcelWorkSheet1.cells.Item[nowhangi, 3].font.size := strtoint(Edit11.text);ExcelWorkSheet1.cells.Item[nowhangi, 3] := dm1.queryanjuan.fieldbyname('目录号').asstring;exceptend;dm1.queryanjuan.Next;nowhangi := nowhangi + 1;end;end;try //插入页码ExcelWorkSheet1.PageSetup.RightHeader := '&9第&P 页共&N页';exceptshowmessage('您可能没有安装打印机');end;for i := 1 to nowhangi - 1 do //画单元格边框if taoda.Checked thenbeginwith ExcelApplication1.Range['A' + inttostr(i), 'J' + inttostr(i)].Borders dobeginLineStyle := xlContinuous;Weight := xlThin;ColorIndex := xlAutomatic;end;end;ExcelWorkBook1.SaveCopyAs(GetCurpath + 'temp.xls');ExcelApplication1.DisplayAlerts[LCID] := False;ExcelApplication1.Quit;ExcelWorksheet1.Disconnect;ExcelWorkbook1.Disconnect;ExcelApplication1.Disconnect;end;procedure TfrmMain.DoAdoSql(CurADODS: TADODataSet; SSql: string); varoldcur: tcursor;beginsb1.Panels[0].Text := '正在查询数据……'; //sb1:Tstatusbar控件sb1.Refresh;oldcur := Screen.Cursor;screen.cursor := crHourGlass;tryif CurADODS.Active = true then CurADODS.Close;mandText := SSql;CurADODS.Open;finallyscreen.Cursor := oldcur;end;end;。
一、使用单元:Use :EXCEL 2000, ComObj二、定义var ExcelApp,Sheet,Range: V ariant;注释:ExcelApp 为定义的Excel 对象Sheet 为定义的工作表(Sheet)对象Range 为定义的工作表范围三、关于Excel 对象创建初始化以及工作表、工作表范围的初始化1. 创建excel对象:ExcelApp := CreateOleObject( 'Excel.Application' );2. 显示当前窗口:ExcelApp.V isible := True;3. 更改Excel 标题栏:ExcelApp.Caption := '应用程序调用Microsoft Excel';4. 添加新工作簿:ExcelApp.WorkBooks.Add;5 打开已存在的工作簿:ExcelApp.WorkBooks.Open(FilePath);6.设置工作簿默认工作表张数ExcelApp.SheetsInNewWorkbook := 1;7.设置工作表名称ExcelApp.Workbooks[WorkbookNum].WorkSheets[WorkSheetNum].Name := PName;8.工作表初始化Sheet:= ExcelApp.Workbooks[WorkbookNum].WorkSheets[WorkSheetNum];9.工作表范围初始化Range := Sheet.Range['A1:DL1'] ;10.设置第2个工作表为活动工作表:ExcelApp.WorkSheets[2].Activate;或ExcelApp.WorksSheets[ 'Sheet2' ].Activate;三、单元格赋值设置数值类型1. 给单元格赋值:ExcelApp.Cells[row, column].V alue := '第一行第四列';或Sheet.Cells[row, column] := ‘第一行第四列’;2 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells[row,column].ClearContents;或Sheet.Cells[row,column]. ClearContents3设置单元格数值类型为文字型Range.NumberFormatLocal := '@';四、设置列宽和行高1. 设置指定列的宽度(单位:字符个数):ExcelApp.ActiveSheet.Columns[column].ColumnsWidth := 5;或Sheet.Columns[column].ColumnWidth := 5;2.设置指定行的高度(单位:磅)(1磅=0.035厘米)ExcelApp.ActiveSheet.Rows[row].RowHeight := 1/0.035; // 1厘米或Sheet. Rows [row]. RowHeight:= 1/0.035;五、对齐方式1.水平对齐Range.HorizontalAlignment:=xlCenter; 居中Range.HorizontalAlignment:=xlLeft;居左Range.HorizontalAlignment:=xlRight;居右或Sheet.Cells[row,column].HorizontalAlignment:=xlCenter; 居中Sheet.Cells[row,column].HorizontalAlignment:=xlLeft;居左Sheet.Cells[row,column].HorizontalAlignment:=xlRight;居右2.垂直对齐Range. V erticalAlignment:=xlCenter; 居中Range. V erticalAlignment:= xltop;顶端对齐Range. V erticalAlignment:= xlbottomfont;底部对齐或Sheet.Cells[row,column]. VerticalAlignment:=xlCenter; 居中Sheet.Cells[row,column]. VerticalAlignment:= xltop;顶端对齐Sheet.Cells[row,column]. VerticalAlignment:= xlbottomfont; 底部对齐六、文字控制1.自动换行Range.WrapText:=true;或Sheet.Cells[row,column]. WrapText:=true;2.合并单元格Sheet.range['A17:G17'].Merge;3.跨越合并Sheet.range['C27:D34'].Merge(true);七、字型设置1.设置字体大小Range.Characters.Font.Size := 10;或Sheet.Cells[row,column].Characters.Font.Size := 10;2.字体加重Range.Characters.Font. Bold:= true;或Sheet.Cells[row,column].Characters.Font. Bold:= true;3.字体倾斜Range.Characters.Font. Italic:= true;或Sheet.Cells[row,column].Characters.Font. Italic:= true;4.字体:=’楷体_GB2312'或Sheet.Cells[row,column].Characters.Font. Name:=’楷体_GB2312’5字体样式(常规,斜体,粗体,粗斜体)Range.Characters.Font.FontStyle:=’常规'或Sheet.Cells[row,column].Characters.Font.FontS tyle:=’常规'6.下划线Range.Characters.Font.UnderLine := True;或Sheet.Cells[row,column].Characters.Font.UnderLine := True;八、分页符操作1.在第8行之前插入分页符:ExcelApp.WorkSheets[1].Rows.PageBreak := 1;或Sheet. Rows. PageBreak := 1;或Range. Rows. PageBreak := 1;2.在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;或Sheet.Columns[4]. PageBreak := 0;或Range.Columns[4].PageBreak :=0;九、关于边框的操作:Border :1-左2-右3-顶4-底5-斜( \ ) 6-斜( / )1.指定边框线宽度:ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[Border].Weight := 3;或Sheet. Borders[Border].Weight := 3;或Range Borders[Border].Weight := 3;2.边框线线条形状Sheet.Borders[Border].linestyle :=1;或Range.Borders[Border]. Linestyle := 1;Linestyle 1:实线2 虚线12 双横线十、关于颜色1. 设置单元格背景色Sheet.Cells[row,column].Interior.ColorIndex := 38;或Range.Interior.ColorIndex := 38;2.字体颜色Range.Characters.Font.Colorindex:=6;或Sheet.Cells[row,column].Characters.Font.Colorindex:=6 Colorindex的值十一、冻结窗口Sheet.Cells[2,3].select;ExcelApp.ActiveWindow.FreezePanes := True;十二、打印设置1.页眉:Sheet.PageSetup.CenterHeader := '报表演示';2.页脚:Sheet.PageSetup.CenterFooter := '第&P页';3页眉到顶端边距2cm:Sheet.PageSetup.HeaderMargin := 2/0.035;4.页脚到底端边距3cm:Sheet.PageSetup.HeaderMargin := 3/0.035;5.顶边距2cm:Sheet.PageSetup.TopMargin := 2/0.035;6.底边距2cm:Sheet.PageSetup.BottomMargin := 2/0.035;7.左边距2cm:Sheet.PageSetup.LeftMargin := 2/0.035;8.右边距2cm:Sheet.PageSetup.RightMargin := 2/0.035;9.页面水平居中:Sheet.PageSetup.CenterHorizontally := 2/0.035;10.页面垂直居中:Sheet.PageSetup.CenterV ertically := 2/0.035;11.打印单元格网线:Sheet.PageSetup.PrintGridLines := True;12缩放比例Sheet.PageSetup.zoom := 75;13横向打印Sheet.PageSetup.Orientation:= xllandscape;14 纵向打印Sheet.PageSetup.Orientation:=xlportrait;15.设置打印标题行Sheet.PageSetup.PrintTitleRows := Sheet.Rows['1:3'].Address ;Sheet.PageSetup.PrintTitleColumns := Sheet.Rows[3].Address;16.打印预览工作表:Sheet.PrintPreview;17 打印输出工作表:Sheet.PrintOut;十三、拷贝操作:1.拷贝整个工作表:ed.Range.Copy;2. b.拷贝指定区域:Sheet.Range[ 'A1:E2' ].Copy;3.从A1位置开始粘贴:Sheet.Range.[ 'A1' ].PasteSpecial;4.从文件尾部开始粘贴:Sheet.Range.PasteSpecial;十四、行列的插入删除1. 插入一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Insert;b. ExcelApp.ActiveSheet.Columns[1].Insert;2. 删除一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Delete;b. ExcelApp.ActiveSheet.Columns[1].Delete;十五、Excel保存关闭1.工作表保存:if not ExcelApp.ActiveWorkBook.Saved thenExcelApp.ActiveSheet.PrintPreview;2.工作表另存为:ExcelApp. SaveAs ( filepath);3 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True;4. 关闭工作簿:ExcelApp.WorkBooks.Close;5. 退出Excel:ExcelApp.Quit;6. 工作表关闭ExcelApp.WorkBooks.Close ;十六、其他1. 已经使用的行数edRange.Rows.Count;(三)使用Delphi控制Excel二维图在Form中分别放入ExcelApplication,ExcelWorkbook和ExcelWorksheet V ar asheet1,achart,range:variant;1)选择当第一个工作簿第一个工作表asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1];2)增加一个二维图achart:=asheet1.chartobjects.add(100,100,200,200);3)选择二维图的形态achart.chart.chartype:=4;4)给二维图赋值series:=achart.chart.seriescollection;range:=sheet1!r2c3:r3c9;series.add(range,true);5)加上二维图的标题achart.Chart.HasTitle:=True;achart.Chart.ChartTitle.Characters.Text:=’Excel二维图’6)改变二维图的标题字体大小achart.Chart.ChartTitle.Font.size:=6;7)给二维图加下标说明achart.Chart.Axes(xlCategory,xlPrimary).HasTitle:=True;achart.Chart.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text:=’下标说明’;8)给二维图加左标说明achart.Chart.Axes(xlValue,xlPrimary).HasTitle:=True;achart.Chart.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text:=’左标说明’;9)给二维图加右标说明achart.Chart.Axes(xlValue,xlSecondary).HasTitle:=True;achart.Chart.Axes(xlValue,xlSecondary).AxisTitle.Characters.Text:=’右标说明’;10)改变二维图的显示区大小achart.Chart.PlotArea.Left:=5;achart.Chart.PlotArea.Width:=223;achart.Chart.PlotArea.Height:=108;11)给二维图坐标轴加上说明achart.chart.seriescollection[1].NAME:=’坐标轴说明’;。
delphi excel 例程Delphi Excel 例程:一步一步回答在Delphi中,我们可以使用Excel 例程来实现与Excel文件的交互。
Excel 例程是一组可以通过Delphi编程语言来操作Excel文件的方法和函数。
本文将介绍如何使用Delphi和Excel 例程来创建、读取、写入和操作Excel 文件。
第一步:安装Excel 例程要开始使用Delphi和Excel 例程,我们首先需要安装Excel 例程库。
这可以通过三种方法之一来实现:1. 使用ActiveX组件:在Delphi IDE的“Component”菜单下,选择“Import ActiveX Control”。
在弹出的窗口中,选择“Microsoft Excel xx.x Object Library”(其中"xx.x"表示Excel版本号),然后点击“Install”按钮进行安装。
2. 使用第三方库:你还可以使用第三方库,如TExcelComponent或Flexcel,它们提供了更多的功能和灵活性。
3. 编写自己的Excel 例程:如果你对编程充满信心,你可以自己编写一组Excel 例程,以与Excel文件交互。
不过,这需要一些时间和努力。
第二步:创建一个新的Excel文件在使用Delphi和Excel 例程之前,我们首先需要创建一个Excel文件。
下面是示例代码,展示了如何使用Excel 例程来创建和保存一个新的Excel文件:delphivarExcelApp: Variant;ExcelWorkbook: Variant;ExcelWorksheet: Variant;begin创建Excel应用程序对象ExcelApp := CreateOleObject('Excel.Application');创建一个新的工作簿ExcelWorkbook := ExcelApp.Workbooks.Add;获取第一个工作表ExcelWorksheet := ExcelWorkbook.Worksheets.Item[1];设置单元格的值ExcelWorksheet.Cells[1, 1].Value := 'Hello'; ExcelWorksheet.Cells[1, 2].Value := 'World!';保存工作簿ExcelWorkbook.SaveAs('C:\NewExcelFile.xlsx');关闭Excel应用程序ExcelApp.Quit;end;通过这段代码,我们可以创建一个新的Excel应用程序对象,并在其中创建一个新的工作簿。
在delphi中调用excel有四种方式,我们选取其中的一种用oleobject来装载excel工作表的方式来谈delphi控制excel的重要属性和方法。
首先给出通过ole创建的一些主要代码步进行简单说明:创建ole对象:var olecon: tolecontainer;olecon:= tolecontainer.create(self);olecon.oleobject:= olecon.createobject('excel.sheet',false);或选择导入一个excel文件来创建ole对象:olecon.oleobject:= olecon.createobjectfromfile(xlsname,false);最好隐藏excel的几个工具条,这样就好象是嵌在你的程序中的一个表而已了:mandbars['standard'].visible:=false;mandbars['formatting'].visible:=false ;mandbars['reviewing'].visible:=false;然后显示并激活excel表,对tolecontainer定义的对象:olecon.show;olecon.doverb(0);这样基本可以了,但tolecontainer有个不好的地方,就是当你一点击其它控件是就它就失去焦点,然后就自动退出,其实并没有真的退出,只是需要你再次激活它而已,关键是当它失去焦点的时候就excel对象就不见了,可以用timage控件把tolecontainer所在的地方有excel时候的区域图片截下来骗骗用户,我们这里主要不是讲这个,就不详述了。
下面我们就开始讲excel_tlb中的接口的常用属性和方法,主要是针对导出和设定报表格式的一些接口元素。
单元格的读写属性:olecon.oleobject.application.cells.item[1,1];olecon.oleobject.application.cells(1,1);olecon.oleobject.application.cells[1,1].value;上面三种都可以对工作表的‘a1’单元进行读写。
一、使用单元:Use :EXCEL 2000, ComObj二、定义var ExcelApp,Sheet,Range: Variant;注释:ExcelApp 为定义的Excel 对象Sheet 为定义的工作表(Sheet)对象Range 为定义的工作表范围三、关于Excel 对象创建初始化以及工作表、工作表范围的初始化1. 创建excel对象:ExcelApp := CreateOleObject( 'Excel.Application' );2. 显示当前窗口:ExcelApp.Visible := True;3. 更改Excel 标题栏:ExcelApp.Caption := '应用程序调用Microsoft Excel';4. 添加新工作簿:ExcelApp.WorkBooks.Add;5 打开已存在的工作簿:ExcelApp.WorkBooks.Open(FilePath);6.设置工作簿默认工作表张数ExcelApp.SheetsInNewWorkbook := 1;7.设置工作表名称ExcelApp.Workbooks[WorkbookNum].WorkSheets[WorkSheetNum].Name := PName;8.工作表初始化Sheet:= ExcelApp.Workbooks[WorkbookNum].WorkSheets[WorkSheetNum];9.工作表范围初始化Range := Sheet.Range['A1:DL1'] ;10.设置第2个工作表为活动工作表:ExcelApp.WorkSheets[2].Activate;或ExcelApp.WorksSheets[ 'Sheet2' ].Activate;三、单元格赋值设置数值类型1. 给单元格赋值:ExcelApp.Cells[row, column].Value := '第一行第四列';或Sheet.Cells[row, column] := ‘第一行第四列’;2 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells[row,column].ClearContents;或Sheet.Cells[row,column]. ClearContents3设置单元格数值类型为文字型Range.NumberFormatLocal := '@';四、设置列宽和行高1. 设置指定列的宽度(单位:字符个数):ExcelApp.ActiveSheet.Columns[column].ColumnsWidth := 5;或Sheet.Columns[column].ColumnWidth := 5;2.设置指定行的高度(单位:磅)(1磅=0.035厘米)ExcelApp.ActiveSheet.Rows[row].RowHeight := 1/0.035; // 1厘米或Sheet. Rows [row]. RowHeight:= 1/0.035;五、对齐方式1.水平对齐Range.HorizontalAlignment:=xlCenter; 居中Range.HorizontalAlignment:=xlLeft;居左Range.HorizontalAlignment:=xlRight;居右或Sheet.Cells[row,column].HorizontalAlignment:=xlCenter; 居中Sheet.Cells[row,column].HorizontalAlignment:=xlLeft;居左Sheet.Cells[row,column].HorizontalAlignment:=xlRight;居右2.垂直对齐Range. VerticalAlignment:=xlCenter; 居中Range. VerticalAlignment:= xltop;顶端对齐Range. VerticalAlignment:= xlbottomfont;底部对齐或Sheet.Cells[row,column]. VerticalAlignment:=xlCenter; 居中Sheet.Cells[row,column]. VerticalAlignment:= xltop;顶端对齐Sheet.Cells[row,column]. VerticalAlignment:= xlbottomfont; 底部对齐六、文字控制1.自动换行Range.WrapText:=true;或Sheet.Cells[row,column]. WrapText:=true;2.合并单元格Sheet.range['A17:G17'].Merge;3.跨越合并Sheet.range['C27:D34'].Merge(true);七、字型设置1.设置字体大小Range.Characters.Font.Size := 10;或Sheet.Cells[row,column].Characters.Font.Size := 10;2.字体加重Range.Characters.Font. Bold:= true;或Sheet.Cells[row,column].Characters.Font. Bold:= true;3.字体倾斜Range.Characters.Font. Italic:= true;或Sheet.Cells[row,column].Characters.Font. Italic:= true;4.字体:=’楷体_GB2312'或Sheet.Cells[row,column].Characters.Font. Name:=’楷体_GB2312’5字体样式(常规,斜体,粗体,粗斜体)Range.Characters.Font.FontStyle:=’常规'或Sheet.Cells[row,column].Characters.Font.FontStyle:=’常规'6.下划线Range.Characters.Font.UnderLine := True;或Sheet.Cells[row,column].Characters.Font.UnderLine := True;八、分页符操作1.在第8行之前插入分页符:ExcelApp.WorkSheets[1].Rows.PageBreak := 1;或Sheet. Rows. PageBreak := 1;或Range. Rows. PageBreak := 1;2.在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;或Sheet.Columns[4]. PageBreak := 0;或Range.Columns[4].PageBreak :=0;九、关于边框的操作:Border :1-左2-右3-顶4-底5-斜( \ ) 6-斜( / )1.指定边框线宽度:ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[Border].Weight := 3;或Sheet. Borders[Border].Weight := 3;或Range Borders[Border].Weight := 3;2.边框线线条形状Sheet.Borders[Border].linestyle :=1;或Range.Borders[Border]. Linestyle := 1;Linestyle 1:实线2 虚线12 双横线十、关于颜色1. 设置单元格背景色Sheet.Cells[row,column].Interior.ColorIndex := 38;或Range.Interior.ColorIndex := 38;2.字体颜色Range.Characters.Font.Colorindex:=6;或Sheet.Cells[row,column].Characters.Font.Colorindex:=6 Colorindex的值十一、冻结窗口Sheet.Cells[2,3].select;ExcelApp.ActiveWindow.FreezePanes := True;十二、打印设置1.页眉:Sheet.PageSetup.CenterHeader := '报表演示';2.页脚:Sheet.PageSetup.CenterFooter := '第&P页';3页眉到顶端边距2cm:Sheet.PageSetup.HeaderMargin := 2/0.035;4.页脚到底端边距3cm:Sheet.PageSetup.HeaderMargin := 3/0.035;5.顶边距2cm:Sheet.PageSetup.TopMargin := 2/0.035;6.底边距2cm:Sheet.PageSetup.BottomMargin := 2/0.035;7.左边距2cm:Sheet.PageSetup.LeftMargin := 2/0.035;8.右边距2cm:Sheet.PageSetup.RightMargin := 2/0.035;9.页面水平居中:Sheet.PageSetup.CenterHorizontally := 2/0.035;10.页面垂直居中:Sheet.PageSetup.CenterVertically := 2/0.035;11.打印单元格网线:Sheet.PageSetup.PrintGridLines := True;12缩放比例Sheet.PageSetup.zoom := 75;13横向打印Sheet.PageSetup.Orientation:= xllandscape;14 纵向打印Sheet.PageSetup.Orientation:=xlportrait;15.设置打印标题行Sheet.PageSetup.PrintTitleRows := Sheet.Rows['1:3'].Address ;Sheet.PageSetup.PrintTitleColumns := Sheet.Rows[3].Address;16.打印预览工作表:Sheet.PrintPreview;17 打印输出工作表:Sheet.PrintOut;十三、拷贝操作:1.拷贝整个工作表:ed.Range.Copy;2. b.拷贝指定区域:Sheet.Range[ 'A1:E2' ].Copy;3.从A1位置开始粘贴:Sheet.Range.[ 'A1' ].PasteSpecial;4.从文件尾部开始粘贴:Sheet.Range.PasteSpecial;十四、行列的插入删除1. 插入一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Insert;b. ExcelApp.ActiveSheet.Columns[1].Insert;2. 删除一行或一列:a. ExcelApp.ActiveSheet.Rows[2].Delete;b. ExcelApp.ActiveSheet.Columns[1].Delete;十五、Excel保存关闭1.工作表保存:if not ExcelApp.ActiveWorkBook.Saved thenExcelApp.ActiveSheet.PrintPreview;2.工作表另存为:ExcelApp. SaveAs ( filepath);3 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True;4. 关闭工作簿:ExcelApp.WorkBooks.Close;5. 退出Excel:ExcelApp.Quit;6. 工作表关闭ExcelApp.WorkBooks.Close ;十六、其他1. 已经使用的行数edRange.Rows.Count;(三)使用Delphi控制Excel二维图在Form中分别放入ExcelApplication,ExcelWorkbook和ExcelWorksheet Var asheet1,achart,range:variant;1)选择当第一个工作簿第一个工作表asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1];2)增加一个二维图achart:=asheet1.chartobjects.add(100,100,200,200);3)选择二维图的形态achart.chart.chartype:=4;4)给二维图赋值series:=achart.chart.seriescollection;range:=sheet1!r2c3:r3c9;series.add(range,true);5)加上二维图的标题achart.Chart.HasTitle:=True;achart.Chart.ChartTitle.Characters.Text:=’Excel二维图’6)改变二维图的标题字体大小achart.Chart.ChartTitle.Font.size:=6;7)给二维图加下标说明achart.Chart.Axes(xlCategory,xlPrimary).HasTitle:=True;achart.Chart.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text:=’下标说明’;8)给二维图加左标说明achart.Chart.Axes(xlValue,xlPrimary).HasTitle:=True;achart.Chart.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text:=’左标说明’;9)给二维图加右标说明achart.Chart.Axes(xlValue,xlSecondary).HasTitle:=True;achart.Chart.Axes(xlValue,xlSecondary).AxisTitle.Characters.Text:=’右标说明’;10)改变二维图的显示区大小achart.Chart.PlotArea.Left:=5;achart.Chart.PlotArea.Width:=223;achart.Chart.PlotArea.Height:=108;11)给二维图坐标轴加上说明achart.chart.seriescollection[1].NAME:=’坐标轴说明’;。
Delphi控制Excel2000操作全集十分值得收藏的咚咚,对认为有用的人很有用,呵呵-----------------------------------------Delphi控制Excel2000希望这分数据,为论坛中的各位会员关于EXCEL操作的问题提供一些帮助。
同时也希望各位能将自己整理的、或已有的资料共享出来。
这样可以减少大家的「重复劳动」吗?技术在于交流,经验在于积累!!!!一.使用动态创建的方法首先创建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].ColumnsWidth:=5;8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelApp.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米9)在第8行之前插入分页符:ExcelApp.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns[4].PageBreak:=0;11)指定边框线宽度:ExcelApp.ActiveSheet.Range['B34'].Borders[2].Weight:=3; 1-左2-右3-顶4-底5-斜(\)6-斜(/)12)清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells[1,4].ClearContents;13)设置第一行字体属性:ExcelApp.ActiveSheet.Rows[1]:='隶书'; 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:='第&页';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.拷贝整个工作表:ed.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;二.使用Delphi控件方法在Form中分别放入ExcelApplication,ExcelWorkbook和ExcelWorksheet。
Delphi 操作EXCEL —— EXCEL workbook.saveas 函数详解本问所有资料来自于Excel2003 VBA帮助文件,张荣整理,适用于DELPHI,VB的高级语言操作Excel用ExcelApplication.WorkBook.SaveAs(filename,FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodePage, TextVisualLayout ,Local)1、Filename: Variant 类型,可选。
该字符串表示要保存的文件名。
可包含完整路径。
如果不指定路径,Microsoft Excel 将文件保存到当前文件夹中。
2、FileFormat: Variant 类型,可选。
保存文件时使用的文件格式。
要得到有效选项的列表,请参阅FileFormat 属性。
对于已有文件,其默认格式是上次指定的文件格式;对于新文件,默认格式为当前使用的Excel 版本格式,可选常数如下:xlAddIn 18xlCSV 6xlCSVMac 22xlCSVMSDOS 24xlCSVWindows 23xlCurrentPlatformText -4158xlDBF2 7xlDBF3 8xlDBF4 11xlDIF 9xlExcel2 16xlExcel2FarEast 27xlExcel3 29xlExcel4 33xlExcel4Workbook 35xlExcel5 39xlExcel7 39xlExcel9795 43xlHtml 44xlIntlAddIn 26xlIntlMacro 25xlSYLK 2xlTemplate 17xlTextMac 19xlTextMSDOS 21xlTextPrinter 36xlTextWindows 20xlUnicodeText 42xlWebArchive 45xlWJ2WD1 14xlWJ3 40xlWJ3FJ3 41xlWK1 5xlWK1ALL 31xlWK1FMT 30xlWK3 15xlWK3FM3 32xlWK4 38xlWKS 4xlWorkbookNormal -4143xlWorks2FarEast 28xlWQ1 34xlXMLData 47xlXMLSpreadsheet 463、Password :Variant 类型,可选。
如何在DELPHI中操作EXCEL电子表格如何在DELPHI中操作EXCEL电子表格EXCEL电子表格作为办公软件OFFICE中的重要组成部份,是日常办公系统的主要助手,因此许多日常所需的业务方面的数据通常是通过电子表格存取。
有时我们需要从日常工作中创建的EXCEL中取得数据进行操作、打印、查询,统计等工作。
在这里我将介绍如何利用delphi完成EXCEL电子表格中数据的操作。
一、新建一项目,从控件栏servers中分别选取控件:excelapplication、excelworkbook1、excelworksheet,放到主窗体from1中,并加入stringgrid、三个按钮、五个显示字段内容的EDIT、二个操作显示记录的label、一个用于打开EXCEL电子表格的控件opendialog等,如下图所示:二、选择excel表'按钮,用于打开EXCEL文件,其代码如下:procedure TForm1.Button1Click(Sender: TObject);var i,j:integer;beginopendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径opendialog1.Execute;TryExcelApplication1.Connect;//EXCEL应用程序ExceptMessageDlg('Excel may not be installed',mtError, [mbOk], 0);Abort;End;ExcelApplication1.Visible[0]:=True;ExcelApplication1.Caption:='Excel Application';tryexcelapplication1.Workbooks.Open(opendialog1.FileName,null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定的EXCEL 文件exceptbeginExcelApplication1.Disconnect;//出现异常情况时关闭ExcelApplication1.Quit;showmessage('请选择EXCEL电子表格!');exit;end;end;ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);//ExcelWorkbook1与Eexcelapplication1建立连接ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);//Excelworksheet1与Excelworkbook1建立连接//开始从EXCEL中取数,放到stringgrid1中,取完数后关闭EXCELfor i:=1 to 1000 do//最大取值1000for j:=1 to 6 dobeginif trim(excelworksheet1.cells.item[i+1,1])<>'' thenbeginstringgrid1.rowCount:=i+1;stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];endelsebeginlabel3.caption:=inttostr(i-1);ExcelApplication1.Disconnect;ExcelApplication1.Quit;//将第一条数据赋给编辑框edit2.text:=stringgrid1.Cells[1,1];edit1.text:=stringgrid1.Cells[2,1];edit3.text:=stringgrid1.Cells[3,1];edit4.text:=stringgrid1.Cells[4,1];edit5.text:=stringgrid1.Cells[5,1];exit;end;end;end;三、'下一条记录'按钮,完成记录向下移动,代码如下: procedure TForm1.Button2Click(Sender: TObject); var x:integer;beginx:=stringgrid1.row+1;if x<> stringgrid1.RowCount thenbeginstringgrid1.row:=stringgrid1.row+1;label1.caption:=inttostr(x);edit2.text:=stringgrid1.Cells[1,x];edit1.text:=stringgrid1.Cells[2,x];edit3.text:=stringgrid1.Cells[3,x];edit4.text:=stringgrid1.Cells[4,x];edit5.text:=stringgrid1.Cells[5,x];exit;endelseshowmessage('已到第一条记录!');end;四、'上一条记录',完成记录上移,代码如下:var x:integer;beginx:=stringgrid1.row-1;if x<>0 thenbeginstringgrid1.row:=stringgrid1.row-1;label1.caption:=inttostr(x);edit2.text:=stringgrid1.Cells[1,x];edit1.text:=stringgrid1.Cells[2,x];edit3.text:=stringgrid1.Cells[3,x];edit4.text:=stringgrid1.Cells[4,x];edit5.text:=stringgrid1.Cells[5,x];exit;endelseshowmessage('已到最后一条记录!');end;五、stringgrid中上下移动时代码:procedure TForm1.StringGrid1Click(Sender: TObject);var i:integer;begini:=stringgrid1.Row;label1.caption:=inttostr(i);edit1.text:=stringgrid1.Cells[2,i];edit2.text:=stringgrid1.Cells[1,i];edit3.text:=stringgrid1.Cells[3,i];edit4.text:=stringgrid1.Cells[4,i];edit5.text:=stringgrid1.Cells[5,i];end;六、运行程序,点击按钮1打开excel表格。
DELPHI中四种EXCEL访问技术实现⼀、引⾔EXCEL在处理中⽂报表时功能⾮常强⼤,EXCEL报表访问也是信息系统开发中的⼀个重要内容,本⽂总结以往开发中所⽤到的⼏中EXCEL⽂件访问⽅法,在实际⼯作中也得到了很好的验证,本⽂列举了其中四种⽅法的实例与读者共享,程序已在W ⼆、ADO⽅式访问EXCEL⽂件ADO⽅式访问EXCEL⽂件时,将EXCEL⽂件看作⼀个等同Oracle、MS SQLServer等数据库的⼀个ODBC数据源本⽂应⽤⽰例主要功能是打开EXCEL⽂件,并实现对EXCEL⽂件的编辑修改功能。
实现过程及主要源代码如下:1.在⼯程中新建窗⼝类TfrmADOEXCEL,在窗⼝中定义私有变量类型为TADOConnection的组件Conn,加⼊TADOTable组件ADOTabXLS、TDataSource组件DSXLS、TDBNavigator组件NavXLS 、TDBGrid组件GridXLS和TButton组件btnOpen,使2.编写btnOpen组件的OnClick事件。
需要注意两点,Conn组件的Extend Properties属性要定义成excel 8.0,另外,EXCEL⽂件中的表单名“⼈员信息表”作为表明时要写成“[⼈员信息表$]”。
procedure TfrmADOEXCEL.btnOpenClick(Sender: TObject);//打开EXCEL⽂件代码beginConn:=TADOConnection.Create(nil);Conn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFileDir(Application.ExeName)+'/PersonData.xls;Extended Properties=excel 8.0;Persist Security Info=False';Conn.LoginPrompt:=false;Conn.Connected:=true;ADOTabXLS.Connection:=Conn;ADOTabXLS.TableName:='['+'⼈员信息表'+'$]';ADOTabXLS.Active:=true;DSXLS.DataSet:=ADOTabXLS;GridXLS.DataSource:=DSXLS;except;FreeAndNil(Conn);end;end;三、COM⽅式动态访问EXCEL⽂件COM⽅式动态访问EXCEL⽂件时,基本⽅法是利⽤组件复⽤技术调⽤Office软件平台提供的COM服务组件,充分利⽤COM组件提供的⽅法操纵EXCEL⽂件。
DEPHI操作EXCEL的例子var Form1: TForm1;ExcelApp: Variant;implementation{$R*.dfm}procedure TForm1.FormCreate(Sender: TObject);beginExcelApp := CreateOleObject( …Excel.Application‟ );end;procedure TForm1.Button1Click(Sender: TObject);begin//E xcelApp.WorkBooks.Open(…c:\1.xls‟ );ExcelApp.WorkBooks.Open(ExtractFileDir(application.ExeName)+‟\2.xls‟);ExcelApp.Visible := True;end;procedure TForm1.Button2Click(Sender: TObject);beginexcelapp.workbooks.close;end;procedure TForm1.Button3Click(Sender: TObject);beginExcelApp.ActiveWorkBook.Sheets['Sheet2'].Selectend;procedure TForm1.Button4Click(Sender: TObject);beginexcelapp.activeworkbook.sheets[edit1.Text].select;excelapp.activeworkbook.sheets[edit1.Text].range[edit2.Text].select;edit3.Text :=excelapp.ActiveCell.value;//取公式excelapp.ActiveCell.FormulaR1C1//取值excelapp.ActiveCell.valueend;procedure TForm1.Button5Click(Sender: TObject);beginmemo1.Clear;excelapp.activeworkbook.sheets[edit4.Text].select;excelapp.activeworkbook.sheets[edit4.Text].range[edit5.Text].select;memo1.Lines.Add(…字体:‟+);ifnot VarIsNull(excelapp.Selection.Font.size) thenmemo1.Lines.Add(…字号:‟+inttostr(excelapp.Selection.Font.size));memo1.Lines.Add(…字形:‟+excelapp.Selection.Font.FontStyle);ifnot VarIsNull(excelapp.Selection.Font.Underline) thenmemo1.Lines.Add(…下划线:‟+inttostr(excelapp.Selection.Font.Underline));ifnot VarIsNull(excelapp.Selection.Font.ColorIndex) thenmemo1.Lines.Add(…字体颜色:‟+inttostr(excelapp.Selection.Font.ColorIndex)); ifnot VarIsNull(excelapp.Selection.Interior.ColorIndex) thenmemo1.Lines.Add(…填充颜色:‟+inttostr(excelapp.Selection.Interior.ColorIndex));ifnot VarIsNull(excelapp.Selection.HorizontalAlignment) thenmemo1.Lines.Add(…文本水平对齐方式:‟+inttostr(excelapp.Selection.HorizontalAlignment));ifnot VarIsNull(excelapp.Selection.VerticalAlignment) thenmemo1.Lines.Add(…文本垂直对齐方式:‟+inttostr(excelapp.Selection.VerticalAlignment));ifnot VarIsNull(excelapp.Selection.MergeCells) thenm emo1.Lines.Add(…合并单元格:‟+inttostr(excelapp.Selection.MergeCells));ifnot VarIsNull(excelapp.Selection.WrapText) thenmemo1.Lines.Add(…自动换行:‟+inttostr(excelapp.Selection.WrapText));// 1: Left, 2: Right, 3: Top, 4: bottom// 5: \, 6: / (斜线)// 7: Left, 8: Top, 9: bottom, 10: Right (不包括内部单元格)// 11, 12 , 内部单元格线条(分别是竖线和横线,12我用了没效果)ifnot VarIsNull(excelapp.Selection.Borders[1].LineStyle) thenmemo1.Lines.Add(…区域活动单元格左边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[1].LineStyle)+‟:'+inttostr(exce lapp.Selection.Borders[ 1].Weight)+‟:'+inttostr(excelapp.Selection.Borders[1].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[2].LineStyle) thenmemo1.Lines.Add(…区域活动单元格右边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[2].LineStyle)+‟:'+inttost r(excelapp.Selection.Borders[ 2].Weight)+‟:'+inttostr(excelapp.Selection.Borders[2].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[3].LineStyle) thenmemo1.Lines.Add(…区域活动单元格上边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[3].LineStyle)+‟:'+i nttostr(excelapp.Selection.Borders[ 3].Weight)+‟:'+inttostr(excelapp.Selection.Borders[3].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[4].LineStyle) thenmemo1.Lines.Add(…区域活动单元格下边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[4].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 4].Weight)+‟:'+inttostr(excelapp.Selection.Borders[4].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[5].LineStyle) thenmemo1.Lines.Add(…区域左右斜边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[5].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 5].Weight)+‟:'+inttostr(excelapp.Selection.Borders[5].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[6].LineStyle) thenmemo1.Lines.Add(…区域右左斜边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[6].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 6].Weight)+‟:'+inttostr(excelapp.Selection.Borders[6].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[7].LineStyle) thenmemo1.Lines.Add(…区域左边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[7].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 7].Weight)+‟:'+inttostr(excelapp.Selection.Borders[7].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[8].LineStyle) thenmemo1.Lines.Add(…区域上边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[8].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 8].Weight)+‟:'+inttostr(excelapp.Selection.Borders[8].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[9].LineStyle) thenmemo1.Lines.Add(…区域下边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[9].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders[ 9].Weight)+‟:'+inttostr(excelapp.Selection.Borders[9].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[10].LineStyle) thenmemo1.Lines.Add(…区域右边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[10].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders [10].Weight)+‟:'+inttostr(excelapp.Selection.Borders[10].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[11].LineStyle) thenmemo1.Lines.Add(…区域内部垂直边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[11].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders [11].Weight)+‟:'+inttostr(excelapp.Selection.Borders[11].ColorIndex));ifnot VarIsNull(excelapp.Selection.Borders[12].LineStyle) thenmemo1.Lines.Add(…区域内部水平边框(线性:大小:颜色):‟+inttostr(excelapp.Selection.Borders[12].LineStyle)+‟:'+inttostr(excelapp.Selection.Borders [12].Weight)+‟:'+inttostr(excelapp.Selection.Borders[12].ColorIndex));memo1.Lines.Add(…数字类型:‟+excelapp.Selection.NumberFormatLocal);memo1.Lines.Add(…行高:‟+inttostr(excelapp.Selection.Ro wHeight));memo1.Lines.Add(…列宽:‟+inttostr(excelapp.Selection.ColumnWidth));memo1.Lines.Add(…工作表名称:‟+excelapp.activeworkbook.sheets[edit4.Text].name);end;procedure TForm1.Button6Click(Sender: TObject);beginmemo2.Clear;excelapp.activeworkbook.sheets[edit6.Text].select;memo2.Lines.Add(…图表标题:‟+excelapp.sheets[edit6.Text].ChartObjects[1].chart.ChartTitle.Characters.Text);end;procedure TForm1.Button7Click(Sender: TObject);beginExcelApp.ActiveWorkbook.Sheets['Sheet3'].Select;ExcelApp.Acti veWorkbook.PivotCaches.Add(1,‟Sheet1!R1C2:R5C4′).CreatePivotTable(…[1.xls]S heet3!R2C1′,‟数据透视表1′);ExcelApp.ActiveWorkbook.ShowPivotTableFieldList :=True;ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…姓名‟).Orientation:=1; ExcelApp.Active Sheet.PivotTables(…数据透视表1′).PivotFields(…姓名‟).Position:=1; ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…语文‟).Orientation:=2; ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…语文‟).Position:=1; ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…数学‟).Orientation:=2; ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…数学‟).Position:=1;ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).DisplayImmediateItems:=True;ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).AddDataField(ExcelApp.ActiveSheet.PivotTables(…数据透视表1′).PivotFields(…语文‟),…求和项:语文‟,-4157);//说明,对于宏录制的代码中的,xlRowField ,xlColumnField ,xlSum没有相应的说明,//可以EXCEL的宏中调试时,跟踪出相关的值如xlSum=-4157,其它的根据要求,自己跟踪//以下是录制的宏命令,以供参考{Sub Macro1()……Macro1 Macro宏由MS User 录制,时间: 2006-5-19…ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=_“Sheet1!R1C2:R5C4″).CreatePivotTable TableDestination:=”", TableName:= _“数据透视表1″,DefaultVersion:=xlPivotTableVersion10ActiveSheet.PivotTableWizardTableDestination:=ActiveSheet.Cells(3, 1)ActiveSheet.Cells(3, 1).SelectWithActiveSheet.PivotTables(“数据透视表1″).PivotFields(“姓名”).Orientation =xlRowField.Position = 1End WithWithActiveSheet.Piv otTables(“数据透视表1″).PivotFields(“语文”).Orientation =xlColumnField.Position = 1End WithWithActiveSheet.PivotTables(“数据透视表1″).PivotFields(“数学”).Orientation =xlColumnField.Position = 1End WithRa nge(“D8″).SelectActiveSheet.PivotTables(“数据透视表1″).AddDataField ActiveSheet.PivotTables(“数据透视表1″ _).PivotFields(“语文”), “求和项:语文”,xlSumRange(“C13″).SelectEndSub}end;。
delphi excel 例程-回复[Delphi Excel 例程] 创建、操作和导入、导出Excel 文件的示例简介:Delphi 是一种面向对象的编程语言,常被用于开发Windows 平台下的应用程序。
对于许多开发人员来说,数据的导入、导出和处理是非常常见的任务。
在本例程中,我们将学习如何使用Delphi 操作和导入、导出Excel 文件。
下面是一个详细的步骤指南。
第一步:创建一个新的Delphi 项目首先,打开Delphi IDE,然后创建一个新的VCL 应用程序项目。
我们将使用Visual Component Library(VCL)来构建我们的应用程序。
第二步:添加Excel 文件库在Delphi IDE 的主菜单栏中,点击"Component",然后选择"Import Component"。
在对话框中,找到"Microsoft Excel" 组件并选中它,然后点击"OK"。
第三步:设计用户界面在Delphi 的窗体设计器中,设计一个用户界面,以便用户可以选择导入或导出Excel 文件,并进行必要的操作。
第四步:导入Excel 文件在用户界面中,添加一个"导入Excel 文件" 的按钮,并在单击事件中编写以下代码。
pascalusesExcelApp, ExcelWB;procedure TForm1.Button1Click(Sender: TObject);varExcel: _Application; Excel 应用程序对象Workbook: _Workbook; 工作簿对象Worksheet: _Worksheet; 工作表对象begintryExcel := CoExcelApplication.Create; 创建Excel 应用程序对象Workbook :=Excel.Workbooks.Open('C:\path\to\your\excel.xlsx'); 打开Excel 文件Worksheet := Workbook.Worksheets[1]; 获取第一个工作表在这里,你可以通过Worksheet 对象获取和处理Excel 文件的数Workbook.Close(True); 关闭并保存Excel 文件Excel.Quit; 关闭Excel 应用程序finallyWorksheet := nil;Workbook := nil;Excel := nil;end;end;在此代码示例中,我们使用`CoExcelApplication` 类的`Create` 方法创建了一个Excel 应用程序的实例。
delphi excelwriter引用单元
在Delphi中使用ExcelWriter进行Excel文档操作,首先需要在项目中引用ExcelWriter引用单元。
以下是具体的引用步骤:
1.打开Delphi的代码编辑器,找到项目选项卡中的"引用"选项。
2.在"引用"对话框中,找到"Delphi单元"列表,然后展开它。
3.在展开的列表中,找到"ExcelWriter"单元,然后选中它。
4.点击"确定"按钮,关闭"引用"对话框。
完成以上步骤后,ExcelWriter引用单元就已经被成功添加到项目中,可以在代码中使用其提供的Excel文档操作功能。
例如,可以通过声明一个Excel应用程序变量并为其分配一个实例来创建一个Excel文档对象,然后使用ExcelWriter提供的API来操作Excel文档。
【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 := xlNoneExcel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin边框的类型 Borders[N]xlEdgeLeft 左=1xlEdgeRight 右=2xlEdgeTop 顶=3xlEdgeBottom 底=4xlDiagonalUp 左上右下=5xlDiagonalDown 左下右上=6xlEdgeLeft 外部左边框=7xlEdgeTop 外部上边框=8xlEdgeBottom 外部下边框=9xlEdgeRight 外部右边框=10xlInsideVertical 内部竖线=11xlInsideHorizontal 内部横线=12(其中1:为左 2:右 3:顶 4:底 5:斜\ 6:斜/)线条类型LineStyle,宽度Weight单条线的LineStyle := xlContinuous双条线的LineStyle := xlDouble虚线 xlHairline 1实线 xlThin中实线 xlMedium粗实线 xlThick2.给单元格赋值:Excel.Cells[1,4].Value := 第一行第四列;3.设置第一行字体属性(隶书,蓝色,加粗,下划线):Excel.ActiveSheet.Rows[1] := 隶书; Excel.ActiveSheet.Rows[1].Font.Color := clBlue; Excel.ActiveSheet.Rows[1].Font.Bold := True; Excel.ActiveSheet.Rows[1].Font.UnderLine := True;4.设置整个表字体为9Excel.Cells.Font.Size:=9;5.在第8行之前插入/删除分页符:Excel.WorkSheets[1].Rows[8].PageBreak := 1; (0为删除)6.清除第一行第四列单元格公式:Excel.ActiveSheet.Cells[1,4].ClearContents;7.从数字类型转换成文本类型(不知道格式化字符串,请录制宏,抽出宏中格式化字符串。
【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 := xlNoneExcel.ActiveSheet.Range[B10:C13].Borders[N].Weight := xlThin边框的类型 Borders[N]xlEdgeLeft 左=1xlEdgeRight 右=2xlEdgeTop 顶=3xlEdgeBottom 底=4xlDiagonalUp 左上右下=5xlDiagonalDown 左下右上=6xlEdgeLeft 外部左边框=7xlEdgeTop 外部上边框=8xlEdgeBottom 外部下边框=9xlEdgeRight 外部右边框=10xlInsideVertical 内部竖线=11xlInsideHorizontal 内部横线=12(其中1:为左 2:右 3:顶 4:底 5:斜\ 6:斜/)线条类型LineStyle,宽度Weight单条线的LineStyle := xlContinuous双条线的LineStyle := xlDouble虚线 xlHairline 1实线 xlThin中实线 xlMedium粗实线 xlThick2.给单元格赋值:Excel.Cells[1,4].Value := 第一行第四列;3.设置第一行字体属性(隶书,蓝色,加粗,下划线):Excel.ActiveSheet.Rows[1] := 隶书; Excel.ActiveSheet.Rows[1].Font.Color := clBlue; Excel.ActiveSheet.Rows[1].Font.Bold := True; Excel.ActiveSheet.Rows[1].Font.UnderLine := True;4.设置整个表字体为9Excel.Cells.Font.Size:=9;5.在第8行之前插入/删除分页符:Excel.WorkSheets[1].Rows[8].PageBreak := 1; (0为删除)6.清除第一行第四列单元格公式:Excel.ActiveSheet.Cells[1,4].ClearContents;7.从数字类型转换成文本类型(不知道格式化字符串,请录制宏,抽出宏中格式化字符串。
Delphi对Excel表格的各种操作
对Excel表格的各种操作
使用Excel最好用Comobj方式,它能够达到完全控制excel的目的。
不过这种方式在Delphi中没有代码提示,而使用Server控件的方式有!下边是使用comobj的,使用Server 的就不放进来了!另外用完Variant 要释放掉
这样比较好(ExcelApp:=Unassigned;)
use Comobj
(一) 使用动态创建的方法
首先创建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:ExcelDemo.xls' );
5) 设置第2个工作表为活动工作表:
ExcelApp.WorkSheets[2].Activate;
或
ExcelApp.WorksSheets[ 'Sheet2' ].Activate;。