搬家第五天-117.Wincc V7.3 ListView 控件初步使用10-数据导出到excel

我们将数据装入ListView之后,有时需要导出到excel且有一定排版要求,这个也很好实现。假设画面上有一个ListView控件,名字叫做LV,已经装入了数据;有一个按钮用于执行数据导出到excel的操作,在按钮的鼠标点击事件添加以下vbs脚本:

Sub OnClick(ByVal Item)                           
Dim LV,i,j,RowCount,ColCount,Row,Col
Dim xlapp,objsheet,FileName
Set LV=ScreenItems("LV")
RowCount=LV.listitems.count 'LV的行数
ColCount=LV.ColumnHeaders.Count  'LV的列数
Set xlapp=CreateObject("Excel.Application")
xlapp.visible=False
xlapp.workbooks.add
Set objsheet=xlapp.worksheets(1)

'添加列标题
For i=2 To ColCount
 objsheet.cells(3,i-1)=LV.ColumnHeaders.Item(i).Text
Next

'报表标题
objsheet.cells(1,1)="用户归档表"
'Msgbox LV.ListItems.item(1).listsubitems.item(2)
'填充数据
For i=1 To RowCount   '行的序号是从1开始的
 For j=1 To ColCount-1 '列的序号是从0开始的
  Row=3+i
  Col=j
  'Msgbox LV.ListItems.item(i).listsubitems.item(j)
  objsheet.cells(Row,Col)=CStr(LV.ListItems.item(i).listsubitems.item(j))
  'objsheet.cells(4,1)=CStr(LV.ListItems.item(1).listsubitems.item(2))
 Next
Next
'单元格边框线
objsheet.range("a1:d1").mergecells=True '合并单元格
objsheet.range("b3").ColumnWidth =20
objsheet.range("c3").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+RowCount)).borders(1).linestyle=9
objsheet.range("a3:d" & CStr(3+RowCount)).borders(1).weight=2
objsheet.range("a3:d" & CStr(3+RowCount)).borders(2).linestyle=9
objsheet.range("a3:d" & CStr(3+RowCount)).borders(2).weight=2
objsheet.range("a3:d" & CStr(3+RowCount)).borders(3).linestyle=9
objsheet.range("a3:d" & CStr(3+RowCount)).borders(3).weight=2
objsheet.range("a3:d" & CStr(3+RowCount)).borders(4).linestyle=9
objsheet.range("a3:d" & CStr(3+RowCount)).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:\"

End Sub

上一篇:RockyLinux修改网卡ens33为eth0


下一篇:用纯win32编程响应消息