⑴ DELPHI 文件流操作EXCEL
流是数据存储的方式,页是数据的你认为的表现形式,根本不相干的东西
⑵ 如何对EXCEL文件在DELPHI中处理!
用自动化连接excel,可参见excel中的vba,再转化成delphi的语言,不是太难的!!
⑶ delphi导出数据至Excel的几种方法及比较
将DBGrid查询结果导出到Excel uses comobj; //自定义导出过程procere CopyToExcel(Args: array of const);variCount, jCount: Integer;XLApp: Variant;Sheet: Variant;I: Integer;beginScreen.Cursor := crHourGlass;if not VarIsEmpty(XLApp) thenbeginXLApp.DisplayAlerts := False;XLApp.Quit;VarClear(XLApp);end;tryXLApp := CreateOleObject('Excel.Application');exceptScreen.Cursor := crDefault;Exit;end; XLApp.WorkBooks.Add;XLApp.SheetsInNewWorkbook := High(Args) + 1; for I := Low(Args) to High(Args) dobeginXLApp.WorkBooks[1].WorkSheets[I+1].Name := TDBGrid(Args[I].VObject).Name;Sheet := XLApp.Workbooks[1].WorkSheets[TDBGrid(Args[I].VObject).Name];if not TDBGrid(Args[I].VObject).DataSource.DataSet.Active thenbeginScreen.Cursor := crDefault;Exit;end;TDBGrid(Args[I].VObject).DataSource.DataSet.first;for iCount := 0 to TDBGrid(Args[I].VObject).Columns.Count – 1 doSheet.Cells[1, iCount + 1] :=TDBGrid(Args[I].VObject).Columns.Items[iCount].Title.Caption;jCount := 1;while not TDBGrid(Args[I].VObject).DataSource.DataSet.Eof dobeginfor iCount := 0 to TDBGrid(Args[I].VObject).Columns.Count -1 doSheet.Cells[jCount + 1, iCount + 1] :=TDBGrid(Args[I].VObject).Columns.Items[iCount].Field.AsString;Inc(jCount);TDBGrid(Args[I].VObject).DataSource.DataSet.Next;end;XlApp.Visible := True;end;Screen.Cursor := crDefault;end;调用———————procere TForm3.BitBtn1Click(Sender: TObject);begintoexcel([dbgrid1]);end; csv的貌似通过写文档的形式,如下 name,age,sex张三,22,男李四,22,男…
⑷ 用delphi 7如何实现excel文件的导入导出
delphi操作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.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; (二) 使用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].ColumnsWidth := 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; 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; (三) 使用Delphi 控制Excle二维图 在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.charttype:=4; 4)给二维图赋值 series:=achart.chart.seriescollection; range:=sheet1!r2c3:r3c9; series.add(range,true); 5)加上二维图的标题 achart.Chart.HasTitle:=True; achart.Chart.ChartTitle.Characters.Text:=’ Excle二维图’
⑸ 如何用DELPHI读写EXCEL文件
ithqrySeldobeginConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;DataSource='+'e:\test.xls'+';ExtendedProperties=Excel8.0;';Close;SQL.Clear;sql.Add('SELECT*FROM[Sheet1$]');tryOpen;exceptend;end;
⑹ 怎么在delphi中读取Excel数据
在delphi中读取Excel数据方法详见:https://..com/question/1949501860343328348.html
⑺ [delphi]如何调用excel文档
Delphi&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.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;另外的ews1.PageSetup.Orientation := xlLandscape; //横向打印 ews1.PageSetup.Zoom := false; //不使用缩放比例(即使用调整成x页宽,x页高); ews1.PageSetup.FitToPagesWide := 2; //调整成2页宽 ews1.PageSetup.FitToPagesTall := 1; //调整成1页高Printer.Orientation = vbPRORPortrait'横向 Printer.Orientation = vbPRORLandscape'纵向 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 := false; 23) 关闭工作簿:ExcelApp.WorkBooks.Close;24) 退出 Excel:ExcelApp.Quit;(二) 使用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;beginTemp_Worksheet:=ExcelWorkbook1.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);End; 6) 打开已存在的工作簿:ExcelApplication1.Workbooks.Open (c:\a.xlsEmptyParam,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].ColumnsWidth := 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;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;(三) 使用Delphi 控制Excle二维图在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheetvar asheet1,achart, range:variant;1)选择当第一个工作薄第一个工作表asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1];2)增加一个二维图achart:=asheet1.chartobjects.add(100,100,200,200);3)选择二维图的形态achart.chart.charttype:=4;4)给二维图赋值series:=achart.chart.seriescollection;range:=sheet1!r2c3:r3c9;series.add(range,true); 5)加上二维图的标题achart.Chart.HasTitle:=True;achart.Chart.ChartTitle.Characters.Text:=’ Excle二维图’
⑻ 如何在Delphi导入excel读取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 [ '' 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 ;( 二 ) 使用Delphi 控件方法在Form中分别放入ExcelApplication , ExcelWorkbook和ExcelWorksheet。1 ) 打开ExcelExcelApplication1.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 ] .ColumnsWidth := 5 ;10 ) 设置指定行的高度(单位:磅)(1磅=0.035 厘米),以第二行为例:ExcelApplication1.ActiveSheet.Rows [ 2 ] .RowHeight := 1 / 0.035 ; // 1厘米11 ) 在第8行之前插入分页符:ExcelApplication1.WorkSheets [ 1 ] .Rows [ 8 ] .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 ;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 ;( 三 ) 使用Delphi 控制Excle二维图在Form中分别放入ExcelApplication , ExcelWorkbook和ExcelWorksheetVar asheet1 , achart , range : variant ; 1 )选择当第一个工作薄第一个工作表 asheet1 := ExcelApplication1.Workbooks [ 1 ] .Worksheets [ 1 ] ; 2 )增加一个二维图 achart := asheet1.chartobjects.add ( 100 , 100 , 200 , 200 ) ; 3 )选择二维图的形态 achart.chart.charttype := 4 ; 4 )给二维图赋值 series := achart.chart.seriescollection ; range := sheet1!r2c3 : r3c9 ; series.add ( range , true ) ; 5 )加上二维图的标题 achart.Chart.HasTitle := True ; achart.Chart.ChartTitle.Characters.Text := ’ Excle二维图’ 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 进行读取、生成报表的功能开发,在此总结一下常用的三种方法及其优缺点:
一、使用 COM 方法
此方法的原理,是通过 CreateOleOjbect 函数来调用 windows 系统中注册的 Excel 信息,来建立对 Excel.Application 的引用来操作 Excel。示例代码如下:
procereReadExcels;vari,j:Integer;beginexlApp:=CreateOleObject('Excel.Application');exlApp.Visible:=False;exlApp.WorkBooks.Open(fsFileName);iRowCount:=exlApp.ActiveSheet.UsedRange.Rows.Count;iColCount:=exlApp.ActiveSheet.UsedRange.Columns.Count;fori:=2toiRowCountdoforj:=1toicolcountdobeginShowMessage(exlApp.workbooks[1].sheets[1].cells[i,j]);end;end;
优点:可以动态创建,基本不用管软件运行电脑安装的 Excel 版本都能运行;缺点:需要安装 Excel,程序编写过程中缺乏函数、成员等提示,运行时刻出错不易调试。
二、使用 delphi 自带的 Office 控件
此方法与方法一原理类似,区别在于将 Excel.Application 等封装成控件。示例代码如下:
ExcelApplication1.Workbooks.Open('c:est.xls',EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);ExcelApplication1.WorksSheets['Sheet2'].Activate;ExcelApplication1.Cells[1,4].Value:='test';
优点:程序编写过程中可以得到函数、成员等提示;缺点:需要安装 Excel,不同的 Excel 版本,需要有针对性的建立组件。
三、使用第三方控件
XLSReadWrite 作为一个优秀的操作 Excel 的控件,提供了简便快捷读取、写入Excel文件的好办法。示例代码:
vars:string;xls:TXlsReadWrite;beginXls.filename:='c:123.xls';xls.read;s:=xls.sheets[0].asstring[0,0];showmessage(s);xls.sheets[0].asstring[0,0]:='新闻界';xls.savetofile('c:234.xls');end;
优点:可在本机未安装 excel 的前提下读取 Excel 文件,读、写等操作简便;缺点:第三方控件,需要自行安装 。
⑽ 怎样把Delphi数据库里的数据输出到Excel里
方法如下:加一个adoconnection,OLEDB的提供者要选择MicrosoftJet4.0OLEDBProvider,连接的数据库名称就是你要打开的Excel文件,注意设置扩展属性ExtendedProperties为“Excel8.0”。其次,加一个adotable,设置其connetion属性为刚才的adoconnection,注意务必设置tabledirect为true。然后设置tablename,选择相应的sheet?$(即excel的表)。
未经允许不得转载:山九号 » delphi文件流excel|DELPHI 文件流操作EXCEL