Delphi控制Excel2000
类别:COM&ActiveX
(一)使用动态创建的方法
首先创建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;
WrapText:=True可能是自动换行
13)设置第一行字体属性:
ExcelApp.ActiveSheet.Rows[1]https://www.doczj.com/doc/198132067.html,:='隶书';
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.拷贝整个工作表:
https://www.doczj.com/doc/198132067.html,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。
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[8].PageBreak:=1;
12)在第8列之前删除分页符:
ExcelApplication1.ActiveSheet.Columns[8].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]https://www.doczj.com/doc/198132067.html,:='隶书';
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.拷贝整个工作表:
https://www.doczj.com/doc/198132067.html,ed.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;
释放
FreeAndNil(Excelbook);//释放资源FreeAndNil(ExcelSheet);
//释放和清零(变量名)
(三)使用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二维图’
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
(一)使用动态创建的方法
首先创建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]https://www.doczj.com/doc/198132067.html,:='隶书'; 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.拷贝整个工作表:https://www.doczj.com/doc/198132067.html,ed.Range.Copy;
b.拷贝指定区域:ExcelApp.ActiveSheet.Range['A1:E2'].Copy;
c.从A1位置开始粘贴:ExcelApp.ActiveSheet.Range.['A1'].PasteSpecial;
d.从文件尾部开始粘贴:ExcelApp.ActiveSheet.Rang
e.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]https://www.doczj.com/doc/198132067.html,:='隶书';
ExcelApplication1.ActiveSheet.Rows[1].Font.Color:=clBlue; ExcelApplication1.ActiveSheet.Rows[1].Font.Bold:=True;//将全部页面caption的字体设为黑体
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.拷贝整个工作表:
https://www.doczj.com/doc/198132067.html,ed.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;
ews1:TExcelWorksheet;
...
ews1.PageSetup.Orientation:=xlLandscape;//横向打印
ews1.PageSetup.Zoom:=false;//不使用缩放比例(即使用调整成x页宽,x页高);
ews1.PageSetup.FitToPagesWide:=2;//调整成2页宽
ews1.PageSetup.FitToPagesTall:=1;//调整成1页高
工作簿(Workbook)基本操作应用示例
2009-05-2612:42
工作簿(Workbook)基本操作应用示例
示例03-01:创建工作簿(Add方法)
[示例03-01-01]
Sub CreateNewWorkbook1()
MsgBox"将创建一个新工作簿."
Workbooks.Add
End Sub
[示例03-01-02]
Sub CreateNewWorkbook2()
Dim wb As Workbook
Dim ws As Worksheet
Dim i As Long
MsgBox"将创建一个新工作簿,并预设工作表格式."
Set wb=Workbooks.Add
Set ws=wb.Sheets(1)
https://www.doczj.com/doc/198132067.html,="产品汇总表"
ws.Cells(1,1)="序号"
ws.Cells(1,2)="产品名称"
ws.Cells(1,3)="产品数量"
For i=2To10
ws.Cells(i,1)=i-1
Next i
End Sub
--------------------------------------------------------------------------------示例03-02:添加并保存新工作簿
Sub AddSaveAsNewWorkbook()
Dim Wk As Workbook
Set Wk=Workbooks.Add
Application.DisplayAlerts=False
Wk.SaveAs Filename:="D:/SalesData.xls"
End Sub
示例说明:本示例使用了Add方法和SaveAs方法,添加一个新工作簿并将该工作簿以文件名SalesData.xls保存在D盘中。其中,语句Application.DisplayAlerts=False表示禁止弹出警告对话框。
--------------------------------------------------------------------------------示例03-03:打开工作簿(Open方法)
[示例03-03-01]
Sub openWorkbook1()
Workbooks.Open"<需打开文件的路径>\<文件名>"
End Sub
示例说明:代码中的<>里的内容需用所需打开的文件的路径及文件名代替。Open方法共有15个参数,其中参数FileName为必需的参数,其余参数可选。
[示例03-03-02]
Sub openWorkbook2()
Dim fname As String
MsgBox"将D盘中的<测试.xls>工作簿以只读方式打开"
fname="D:\测试.xls"
Workbooks.Open Filename:=fname,ReadOnly:=True
End Sub
--------------------------------------------------------------------------------示例03-04:将文本文件导入工作簿中(OpenText方法)
Sub TextToWorkbook()
'本示例打开某文本文件并将制表符作为分隔符对此文件进行分列处理转换成为工作表Workbooks.OpenText Filename:="<文本文件所在的路径>/<文本文件名>",_
DataType:=xlDelimited,Tab:=True
End Sub
示例说明:代码中的<>里的内容需用所载入的文本文件所在路径及文件名代替。OpenText方法的作用是导入一个文本文件,并将其作为包含单个工作表的工作簿进行分列处理,然后在此工作表中放入经过分列处理的文本文件数据。该方法共有18个参数,其中参数FileName 为必需的参数,其余参数可选。
--------------------------------------------------------------------------------示例03-05:保存工作簿(Save方法)
[示例03-05-01]
Sub SaveWorkbook()
MsgBox"保存当前工作簿."
ActiveWorkbook.Save
End Sub
[示例03-05-02]
Sub SaveAllWorkbook1()
Dim wb As Workbook
MsgBox"保存所有打开的工作簿后退出Excel."
For Each wb In Application.Workbooks
wb.Save
Next wb
Application.Quit
End Sub
[示例03-05-03]
Sub SaveAllWorkbook2()
Dim wb As Workbook
For Each wb In Workbooks
If wb.Path<>""Then wb.Save
Next wb
End Sub
示例说明:本示例保存原来已存在且已打开的工作簿。
--------------------------------------------------------------------------------示例03-06:保存工作簿(SaveAs方法)
[示例03-06-01]
Sub SaveWorkbook1()
MsgBox"将工作簿以指定名保存在默认文件夹中."
ActiveWorkbook.SaveAs"<工作簿名>.xls"
End Sub
示例说明:SaveAs方法相当于“另存为……”命令,以指定名称保存工作簿。该方法有12个参数,均为可选参数。如果未指定保存的路径,那么将在默认文件夹中保存该工作簿。如果文件夹中该工作簿名已存在,则提示是否替换原工作簿。
[示例03-06-02]
Sub SaveWorkbook2()
Dim oldName As String,newName As String
Dim folderName As String,fname As String
oldName=https://www.doczj.com/doc/198132067.html,
newName="new"&oldName
MsgBox"将<"&oldName&">以<"&newName&">的名称保存"
folderName=Application.DefaultFilePath
fname=folderName&"\"&newName
ActiveWorkbook.SaveAs fname
End Sub
示例说明:本示例将当前工作簿以一个新名(即new加原名)保存在默认文件夹中。
[示例03-06-03]
Sub CreateBak1()
MsgBox"保存工作簿并建立备份工作簿"
ActiveWorkbook.SaveAs CreateBackup:=True
End Sub
示例说明:本示例将在当前文件夹中建立工作簿的备份。
[示例03-06-04]
Sub CreateBak2()
MsgBox"保存工作簿时,若已建立了备份,则将出现包含True的信息框,否则出现False." MsgBox ActiveWorkbook.CreateBackup
End Sub
--------------------------------------------------------------------------------示例03-07:取得当前打开的工作簿数(Count属性)
Sub WorkbookNum()
MsgBox"当前已打开的工作簿数为:"&Chr(10)&Workbooks.Count
End Sub
--------------------------------------------------------------------------------[NextPage]示例03-08:激活工作簿(Activate方法)
[示例03-08-01]
Sub ActivateWorkbook1()
Workbooks("<工作簿名>").Activate
End Sub
示例说明:Activate方法激活一个工作簿,使该工作簿为当前工作簿。
[示例03-08-02]
Sub ActivateWorkbook2()
Dim n As Long,i As Long
Dim b As String
MsgBox"依次激活已经打开的工作簿"
n=Workbooks.Count
For i=1To n
Workbooks(i).Activate
b=MsgBox("第"&i&"个工作簿被激活,还要继续吗?",vbYesNo)
If b=vbNo Then Exit Sub
If i=n Then MsgBox"最后一个工作簿已被激活."
Next i
End Sub
--------------------------------------------------------------------------------示例03-09:保护工作簿(Protect方法)
Sub ProtectWorkbook()
MsgBox"保护工作簿结构,密码为123"
ActiveWorkbook.Protect Password:="123",Structure:=True
MsgBox"保护工作簿窗口,密码为123"
ActiveWorkbook.Protect Password:="123",Windows:=True
MsgBox"保护工作簿结构和窗口,密码为123"
ActiveWorkbook.Protect Password:="123",Structure:=True,Windows:=True
End Sub
示例说明:使用Protect方法来保护工作簿,带有三个可选参数,参数Password指明保护工作簿密码,要解除工作簿保护应输入此密码;参数Structure设置为True则保护工作簿结构,此时不能对工作簿中的工作表进行插入、复制、删除等操作;参数Windows设置为True则保护工作簿窗口,此时该工作簿右上角的最小化、最大化和关闭按钮消失。
--------------------------------------------------------------------------------示例03-10:解除工作簿保护(UnProtect方法)
Sub UnprotectWorkbook()
MsgBox"取消工作簿保护"
ActiveWorkbook.Unprotect"123"
End Sub
--------------------------------------------------------------------------------示例03-11:工作簿的一些通用属性示例
Sub testGeneralWorkbookInfo()
MsgBox"本工作簿的名称为"&https://www.doczj.com/doc/198132067.html,
MsgBox"本工作簿带完整路径的名称为"&ActiveWorkbook.FullName
MsgBox"本工作簿对象的代码名为"&ActiveWorkbook.CodeName
MsgBox"本工作簿的路径为"&ActiveWorkbook.Path
If ActiveWorkbook.ReadOnly Then
MsgBox"本工作簿已经是以只读方式打开"
Else
MsgBox"本工作簿可读写."
End If
If ActiveWorkbook.Saved Then
MsgBox"本工作簿已保存."
Else
MsgBox"本工作簿需要保存."
End If
End Sub
--------------------------------------------------------------------------------示例03-12:访问工作簿的内置属性(BuiltinDocumentProperties属性)
[示例03-12-01]
Sub ShowWorkbookProperties()
Dim SaveTime As String
On Error Resume Next
SaveTime=ActiveWorkbook.BuiltinDocumentProperties("Last Save Time").Value
If SaveTime=""Then
MsgBox https://www.doczj.com/doc/198132067.html,&"工作簿未保存."
Else
MsgBox"本工作簿已于"&SaveTime&"保存",,https://www.doczj.com/doc/198132067.html,
End If
End Sub
示例说明:在Excel中选择菜单“文件——属性”命令时将会显示一个“属性”对话框,该对话框中包含了当前工作簿的有关信息,可以在VBA中使用BuiltinDocumentProperties属性访问工作簿的属性。上述示例代码将显示当前工作簿保存时的日期和时间。
[示例03-12-02]
Sub listWorkbookProperties()
On Error Resume Next
'在名为"工作簿属性"的工作表中添加信息,若该工作表不存在,则新建一个工作表Worksheets("工作簿属性").Activate
If Err.Number<>0Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
https://www.doczj.com/doc/198132067.html,="工作簿属性"
Else
ActiveSheet.Clear
End If
On Error GoTo0
ListProperties
End Sub
‘-----------------------
Sub ListProperties()
Dim i As Long
Cells(1,1)="名称"
Cells(1,2)="类型"
Cells(1,3)="值"
Range("A1:C1").Font.Bold=True
With ActiveWorkbook
For i=1To.BuiltinDocumentProperties.Count
With.BuiltinDocumentProperties(i)
Cells(i+1,1)=.Name
Select Case.Type
Case msoPropertyTypeBoolean
Cells(i+1,2)="Boolean"
Case msoPropertyTypeDate
Cells(i+1,2)="Date"
Case msoPropertyTypeFloat
Cells(i+1,2)="Float"
Case msoPropertyTypeNumber
Cells(i+1,2)="Number"
Case msoPropertyTypeString
Cells(i+1,2)="string"
End Select
On Error Resume Next
Cells(i+1,3)=.Value
On Error GoTo0
End With
Next i
End With
Range("A:C").Columns.AutoFit
End Sub
示例说明:本示例代码在“工作簿属性”工作表中列出了当前工作簿中的所有内置属性。
--------------------------------------------------------------------------------示例03-13:测试工作簿中是否包含指定工作表(Sheets属性)
Sub testSheetExists()
MsgBox"测试工作簿中是否存在指定名称的工作表"
Dim b As Boolean
b=SheetExists("<指定的工作表名>")
If b=True Then
MsgBox"该工作表存在于工作簿中."
Else
MsgBox"工作簿中没有这个工作表."
End If
‘-----------------------
Private Function SheetExists(sname)As Boolean
Dim x As Object
On Error Resume Next
Set x=ActiveWorkbook.Sheets(sname)
If Err=0Then
SheetExists=True
Else
SheetExists=False
End If
End Function
--------------------------------------------------------------------------------示例03-14:对未打开的工作簿进行重命名(Name方法)
Sub rename()
Name"<工作簿路径>\<旧名称>.xls"As"<工作簿路径>\<新名称>.xls"
End Sub
示例说明:代码中<>中的内容为需要重命名的工作簿所在路径及新旧名称。该方法只是对未打开的文件进行重命名,如果该文件已经打开,使用该方法会提示错误。
--------------------------------------------------------------------------------[NextPage]示例03-15:设置数字精度(PrecisionAsDisplayed属性)
Sub SetPrecision()
Dim pValue
MsgBox"在当前单元格中输入1/3,并将结果算至小数点后两位"
ActiveCell.Value=1/3
ActiveCell.NumberFormatLocal="0.00"
pValue=ActiveCell.Value*3
MsgBox"当前单元格中的数字乘以3等于:"&pValue
MsgBox"然后,将数值分类设置为[数值],即单元格中显示的精度"
ActiveWorkbook.PrecisionAsDisplayed=True
pValue=ActiveCell.Value*3
MsgBox"此时,当前单元格中的数字乘以3等于:"&pValue&"而不是1" ActiveWorkbook.PrecisionAsDisplayed=False
End Sub
示例说明:PrecisionAsDisplayed属性的值设置为True,则表明采用单元格中所显示的数值进行计算。
--------------------------------------------------------------------------------示例03-16:删除自定义数字格式(DeleteNumberFormat方法)
Sub DeleteNumberFormat()
MsgBox"从当前工作簿中删除000-00-0000的数字格式"
ActiveWorkbook.DeleteNumberFormat("000-00-0000")
示例说明:DeleteNumberFormat方法将从指定的工作簿中删除自定义的数字格式。
--------------------------------------------------------------------------------示例03-17:控制工作簿中图形显示(DisplatyDrawingObjects属性)
Sub testDraw()
MsgBox"隐藏当前工作簿中的所有图形"
ActiveWorkbook.DisplayDrawingObjects=xlHide
MsgBox"仅显示当前工作簿中所有图形的占位符"
ActiveWorkbook.DisplayDrawingObjects=xlPlaceholders
MsgBox"显示当前工作簿中的所有图形"
ActiveWorkbook.DisplayDrawingObjects=xlDisplayShapes
End Sub
示例说明:本属性作用的对象包括图表和形状。在应用本示例前,应保证工作簿中有图表或形状,以察看效果。
--------------------------------------------------------------------------------示例03-18:指定名称(Names属性)
Sub testNames()
MsgBox"将当前工作簿中工作表Sheet1内单元格A1命名为myName."
https://www.doczj.com/doc/198132067.html,s.Add Name:="myName",RefersToR1C1:="=Sheet1!R1C1"
End Sub
示例说明:对于Workbook对象而言,Names属性返回的集合代表工作簿中的所有名称。
--------------------------------------------------------------------------------示例03-19:检查工作簿的自动恢复功能(EnableAutoRecover属性)
Sub UseAutoRecover()
'检查是否工作簿自动恢复功能开启,如果没有则开启该功能
If ActiveWorkbook.EnableAutoRecover=False Then
ActiveWorkbook.EnableAutoRecover=True
MsgBox"刚开启自动恢复功能."
Else
MsgBox"自动恢复功能已开启."
End If
End Sub
--------------------------------------------------------------------------------示例03-20:设置工作簿密码(Password属性)
Sub UsePassword()
Dim wb As Workbook
Set wb=Application.ActiveWorkbook
wb.Password=InputBox("请输入密码:")
wb.Close
End Sub
示例说明:Password属性返回或设置工作簿密码,在打开工作簿时必须输入密码。本示例代码运行后,提示设置密码,然后关闭工作簿;再次打开工作簿时,要求输入密码。
--------------------------------------------------------------------------------示例03-21:返回工作簿用户状态信息(UserStatus属性)
Sub UsePassword()
Dim Users As Variant
Dim Row As Long
Users=https://www.doczj.com/doc/198132067.html,erStatus
Row=1
With Workbooks.Add.Sheets(1)
.Cells(Row,1)="用户名"
.Cells(Row,2)="日期和时间"
.Cells(Row,3)="使用方式"
For Row=1To UBound(Users,1)
.Cells(Row+1,1)=Users(Row,1)
.Cells(Row+1,2)=Users(Row,2)
Select Case Users(Row,3)
Case1
.Cells(Row+1,3).Value="个人工作簿"
Case2
.Cells(Row+1,3).Value="共享工作簿"
End Select
Next
End With
Range("A:C").Columns.AutoFit
End Sub
示例说明:示例代码运行后,将创建一个新工作簿并带有用户使用当前工作簿的信息,即用户名、打开的日期和时间及工作簿使用方式。
--------------------------------------------------------------------------------[NextPage]示例03-22:检查工作簿是否有密码保护(HasPassword属性)
Sub IsPassword()
If ActiveWorkbook.HasPassword=True Then
MsgBox"本工作簿有密码保护,请在管理员处获取密码."
Else
MsgBox"本工作簿无密码保护,您可以自由编辑."
End If
End Sub
--------------------------------------------------------------------------------示例03-23:决定列表边框是否可见(InactiveListBorderVisible属性)
Sub HideListBorders()
MsgBox"隐藏当前工作簿中所有非活动列表的边框."
ActiveWorkbook.InactiveListBorderVisible=False
End Sub
--------------------------------------------------------------------------------示例03-24:关闭工作簿
[示例03-24-01]
Sub CloseWorkbook1()
Msgbox“不保存所作的改变而关闭本工作簿”
ActiveWorkbook.Close False
‘或ActiveWorkbook.Close SaveChanges:=False
‘或ActiveWorkbook.Saved=True
End sub
[示例03-24-02]
Sub CloseWorkbook2()
Msgbox“保存所作的改变并关闭本工作簿”
ActiveWorkbook.Close True
End sub
[示例03-24-03]
Sub CloseWorkbook3()
Msgbox“关闭本工作簿。如果工作簿已发生变化,则弹出是否保存更改的对话框。”ActiveWorkbook.Close True
End sub
[示例03-24-04]关闭并保存所有工作簿
Sub CloseAllWorkbooks()
Dim Book As Workbook
For Each Book In Workbooks
If https://www.doczj.com/doc/198132067.html,<>https://www.doczj.com/doc/198132067.html, Then
Book.Close savechanges:=True
End If
Next Book
ThisWorkbook.Close savechanges:=True
End Sub
[示例03-24-05]关闭工作簿并将它彻底删除
Sub KillMe()
With ThisWorkbook
.Saved=True
.ChangeFileAccess Mode:=xlReadOnly
Kill.FullName
.Close False
End With
End Sub
[示例03-24-06]关闭所有工作簿,若工作簿已改变则弹出是否保存变化的对话框
Sub closeAllWorkbook()
MsgBox"关闭当前所打开的所有工作簿"
怎么在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 [ 8 ] .PageBreak := 1 ; 10 ) 在第8列之前删除分页符: ExcelApp.ActiveSheet.Columns [ 4 ] .PageBreak := 0 ;
Delphi控制Excel2000 类别:COM&ActiveX (一)使用动态创建的方法 首先创建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; WrapText:=True可能是自动换行 13)设置第一行字体属性: ExcelApp.ActiveSheet.Rows[1]https://www.doczj.com/doc/198132067.html,:='隶书'; 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.页脚:
一、使用单元: 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 清除第一行第四列单元格公式:
【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
【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 、管路敷设技术通过管线敷设技术,不仅可以解决吊顶层配置不规范问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术中包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。、电气课件中调试对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。
1.1 德尔菲法实验 1.1.1 理论知识准备 德尔菲(Delphi )是在专家个人判断法的基础上发展起来的一种新型直观的预测方法。目前,德尔菲法已经运用在规划和决策中,并具有较高的声望,是一种重要的规划决策工具。 德尔菲法与专家会议法相比有三个特点,即匿名性、反馈性和预测结果的统计特性。匿名性就是采用匿名函询的方式征求意见,以就消除对专家判断的客观性有影响的一些不良因素。反馈性就是要进行几轮专家意见征询,并把上一轮的结果反馈到下一轮的预测中去,以便专家们可以参考有价值的意见从而提出更好的意见。预测结果的统计特性是指德尔菲法采用统计方法对专家意见进行处理,从而得到定量的表达,使得专家意见逐渐趋于一致。 德尔菲法预测步骤如下: (1) 确定预测主题,归纳预测事件 预测主题就是所要研究和解决的问题。一个主题包括若干个事件。事件是用来说明主题的重要指标。确定预测主题和归纳预测事件是德尔菲法的关键一步。 (2) 选择专家 德尔菲法要求专家对预测主题相当了解,对预测问题的研究非常深入,所选择专家来源广泛,一般是本企业、本部门的专家和有业务联系、关系密切的外部专家以及在社会上有影响的知名人士。专家人数恰当,通常视预测主题规模而定。专家人数太少,缺乏代表性,太多又难于组织。一般情况下,专家小组人数以10~50人为宜。对重大问题的预测,专家小组的人数可扩大到l00人左右。 (3) 预测过程 经典德尔菲法的预测过程一般分为四轮。第一轮确定预测事件,要求各个专家根据所要预测的主题提出预测事件,并用准确的术语列出“预测事件一览表”。第二轮初次预测,将“预测事件一览表”发给各个专家,要求他们对各个事件做出评价,提出相应的预测,并附上理由。有必要还可以提出需要的补充资料,使预测更加准确。第三轮修改预测,专家根据预测领导小组所反馈的第二轮预测结果和补充资料,再一次进行预测,并像第二轮预测一样附上理由。第四轮最后预测,专家再次根据反馈结果做出最后的预测,并根据领导小组的要求,做出或不做出新的论证。 在实际运用中,预测的轮数依照实际情况而定,如果大多数专家不再修改自己的意见,这表明专家们的意见基本趋于一致,这种情况下才能结束预测。 (4) 确定预测值,做出预测结论 最后对专家应答结果进行量化分析和处理,这是德尔菲法最重要的阶段,常采用中位数法,即上、下四分点之间的距离越小,说明专家们的意见越集中,用中位数代表的预测结果的可信程度越高。 首先,把专家们的意见(即对某个问题的不同方案所给出的得分)按从小到大的顺序排列。若有n 个专家,n 个(包括重复的)答数排列如下:n x x x ≤?≤≤21,若中位数及上、下四分点分别用下上中,,x x x 表示,则 ???=++=++k n x x k n x x k k k 2,2/)(12,11=中
下面是我写的通用文档微机管理系统的打印部分原代码,包括合并execl单元格,加入分页符号,设置行高,列宽,设置execl页头,设置每页记录数,画单元格边框,调用execl模板等等 procedure TfrmMain.Button3Click(Sender:TObject);//动态打印excel报表 var tiaojian:string;//tiaojian为一个sql查询语句,全宗号,目录号,起始日期为一数据库字段begin tiaojian:='; if Edit7.Text<>'then begin tiaojian:=tiaojian+'(全宗号='+EDit7.Text+')and'; end; if Edit8.Text<>'then begin tiaojian:=tiaojian+'(目录号='+Edit8.Text+')and'; end; if Edit9.Text<>'then begin tiaojian:=tiaojian+'(起始日期>='+Edit9.Text+')and'; end else tiaojian:=tiaojian+'(起始日期>=0)and'; if Edit10.Text<>'then begin tiaojian:=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); var nowhangi,i,jilushu,LCID:integer;//nowhangi当前execl的所在行,jilushu当前的记录
(一) 使用动态创建的方法 首先创建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[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;
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厘米
1.往Excel中插入图片 用MsExcelWorkSheet.Pictures.Insert(ExtractFilePath(ParamStr(0))+'temp.jpg'); 可以放图片 var ExcelApp,MyWorkBook,MsExcelWorkSheet,Temple1:Variant; begin try ExcelApp:=CreateOleObject('Excel.Application'); MyWorkBook:=CreateOleobject('Excel.Sheet'); MyWorkBook:=ExcelApp.WorkBooks.open(ExtractFilePath(ParamStr(0))+'testItemB ook.xls'); MsExcelWorkSheet:=MyWorkBook.WorkSheets['3']; if not ADOQueryItemBook.IsEmpty then begin Tblobfield(ADOQueryItemBook.FieldByName('pic')).SaveToFile(ExtractFilePat h(ParamStr(0))+'temp.jpg'); MsExcelWorkSheet.Pictures.Insert(ExtractFilePath(ParamStr(0))+'temp.jpg'); end; 提供一些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) 给单元格赋值:
DEPHI操作EXCEL的例子 var Form1: TForm1; ExcelApp: Variant; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin ExcelApp := 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); begin excelapp.workbooks.close; end; procedure TForm1.Button3Click(Sender: TObject); begin ExcelApp.ActiveWorkBook.Sheets['Sheet2'].Select end;
procedure TForm1.Button4Click(Sender: TObject); begin excelapp.activeworkbook.sheets[edit1.Text].select; excelapp.activeworkbook.sheets[edit1.Text].range[edit2.Text].select; edit3.Text :=excelapp.ActiveCell.value; // 取公式excelapp.ActiveCell.FormulaR1C1 //取值excelapp.ActiveCell.value end; procedure TForm1.Button5Click(Sender: TObject); begin memo1.Clear; excelapp.activeworkbook.sheets[edit4.Text].select; excelapp.activeworkbook.sheets[edit4.Text].range[edit5.Text].select; memo1.Lines.Add(…字体:?+https://www.doczj.com/doc/198132067.html,); if not VarIsNull(excelapp.Selection.Font.size) then memo1.Lines.Add(…字号:?+inttostr(excelapp.Selection.Font.size)); memo1.Lines.Add(…字形:?+excelapp.Selection.Font.FontStyle); if not VarIsNull(excelapp.Selection.Font.Underline) then memo1.Lines.Add(…下划线:?+inttostr(excelapp.Selection.Font.Underline)); if not VarIsNull(excelapp.Selection.Font.ColorIndex) then memo1.Lines.Add(…字体颜色:?+inttostr(excelapp.Selection.Font.ColorIndex)); if
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ComObj; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Excel1: Variant; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin begin excel1 := CreateOleObject('Excel.Application'); excel1.WorkBooks.Open('D:\55\aa.xls'); excel1.WorkSheets['sheet1'].Activate; excel1.Cells[1, 4].value:=56+23;//表示单元格 excel1.ActiveSheet.Columns[4].Insert;//插入列 excel1.Cells.Columns.AutoFit;//自动列大小 excel1.visible := true;//是excel可见。 excel1.WorkSheets[2].Activate; excel1.cells[2,2].value:=44; end; end;