因二开VB项目,又重新学习了下VB 以此贴记录下
1.VB引用C++类库
Private Declare Sub SetLed Lib "HMIVIEW210.dll" (ByVal ledNum As Integer, ByVal bStatus As Boolean)
2. VB附加和删除 事件和程序处理的委托关系
RemoveHandler cbxSaff.SelectedIndexChanged, AddressOf cbxSaff_SelectedIndexChanged
AddHandler cbxSaff.SelectedIndexChanged, AddressOf cbxSaff_SelectedIndexChanged
3.VB datagridview 单元格失去焦点事件
dgv_CellLeave
3.指定模板导出
Dim opFil As New SaveFileDialog
opFil.Filter = "*.xls|*.xls"
'判断运行模式
If RunFlg = 0 Then
'导出Excel模式的场合
opFil.ShowDialog()
ElseIf RunFlg = 1 Then
'打印条码的场合
opFil.FileName = Application.StartupPath & "\Bar.xls"
End If
If String.Empty.Equals(opFil.FileName) Then
Me.Close()
Exit Sub
End If
Try
Dim ExlApp As New Excel.Application
Dim ExlBook As Excel.Workbook
Dim ExlSheet As Excel.Worksheet
Dim ExlSheet2 As Excel.Worksheet
'打开文件
ExlApp.Workbooks.Open(Application.StartupPath & "\Bot.xls", , True, , "")
ExlBook = ExlApp.Workbooks(1)
ExlSheet = ExlBook.Worksheets(1)
'ExlSheet2 = ExlBook.Worksheets(2)
'写标题栏
For b As Integer = 0 To DV.ColumnCount - 1
'判断运行模式
If RunFlg = 0 Then
'导出Excel模式的场合,写入完整的标题列
ExlSheet.Cells(1, b + 1).Value = DV.Columns(b).HeaderText
Else
'打印条码的场合,列标题采用数字
ExlSheet.Cells(1, b + 1).Value = b.ToString
End If
Next
'遍历页面数据
Dim i As Integer
For i = 0 To DV.Rows.Count - 1
'判断列表是否有数据
'If DV.Rows(i).Cells(1).Value.ToString.Trim.Length > 0 Then
'有数据的场合,遍历所有列写入Excel
For a As Integer = 0 To DV.ColumnCount - 1
If DBNull.Value Is DV.Rows(i).Cells(a).Value = False Then
ExlSheet.Cells(i + 2, a + 1).Value = DV.Rows(i).Cells(a).Value
End If
Next
'End If
Next
ExlApp.DisplayAlerts = False
ExlApp.Workbooks(1).SaveAs(opFil.FileName)
'关闭EXCEL文件
ExlBook.Close(False)
ExlApp.Workbooks.Close()
ExlApp.Quit()
ExlApp = Nothing
ExlBook = Nothing
ExlSheet = Nothing