您的当前位置:首页Wincc V7.3用户归档深入5-用vbs将用户归档的内容导出到excel

Wincc V7.3用户归档深入5-用vbs将用户归档的内容导出到excel

2021-02-01 来源:小侦探旅游网


Wincc V7.3用户归档深入5-用vbs将用户归档的内容导出到excel

我们在用户归档中得到数据之后,如果想导出到excel,思路是和把MSHFGrid数据导出类似的。网上有些文章是直接从后台数据表读取数据,本文介绍从数据归档控件导出数据。

1. 假设wincc项目已经创建了用户归档,画面上有一个用户归档控件,名字叫做UA,设置一个按钮,按钮点击事件添加以下vbs脚本

Sub OnClick(ByVal Item)

Dim UA,col,row,rows

Dim xlapp,objsheet

Dim i,j,k,m,n,filename

Set UA=ScreenItems(\"UA\")

Set rows=UA.GetRowCollection

m=rows.Count

n=UA.ColumnCount

If m>1 Then '如果用户归档控件有记录

Set xlapp=CreateObject(\"Excel.Application\")

xlapp.visible=False

xlapp.workbooks.add

Set objsheet=xlapp.worksheets(1)

For k=1 To n

ua.ColumnIndex=k

objsheet.cells(3,k)=ua.ColumnCaption '字段名称

Next

objsheet.cells(1,1)=\"XX用户归档\"

For i=1 To m

For j= 1 To n

objsheet.cells(i+3,j)=ua.GetRow(i).celltext(j)

Next

Next

'以下代码处理日期时间数据格式以及表格边框线、标题合并单元格等排版

objsheet.range(\"a1:d1\").mergecells=True

'objsheet.range(\"a1\").ColumnWidth =20 '列宽度

objsheet.cells(2,1)=\"生成时间:\"

objsheet.cells(2,2)=Year(Now) & \"年\" & Month(Now) & \"月\" & Day(Now) & \"日\"

objsheet.cells(1,1).HorizontalAlignment = 3

objsheet.range(\"a3:d\" & CStr(3+m)).borders(1).linestyle=9

objsheet.range(\"a3:d\" & CStr(3+m)).borders(1).weight=2

objsheet.range(\"a3:d\" & CStr(3+m)).borders(2).linestyle=9

objsheet.range(\"a3:d\" & CStr(3+m)).borders(2).weight=2

objsheet.range(\"a3:d\" & CStr(3+m)).borders(3).linestyle=9

objsheet.range(\"a3:d\" & CStr(3+m)).borders(3).weight=2

objsheet.range(\"a3:d\" & CStr(3+m)).borders(4).linestyle=9

objsheet.range(\"a3:d\" & CStr(3+m)).borders(4).weight=2

'保存文件

filename= \"c:\\\" & Year(Now) & \"年\" & Month(Now) & \"月\" & Day(Now) & \"日-\" & Hour(Now) & \"点\" & Minute(Now) & \"分\" & Second(Now) & \"秒生成用户归档.xlsx\"

xlapp.Activeworkbook.saveas (filename)

xlapp.workbooks.close

xlapp.quit

Msgbox \"成功导出到C:\\\"

Else

Msgbox \"用户归档没有记录\"

End If

End Sub

因篇幅问题不能全部显示,请点此查看更多更全内容