加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB.NET 打开Excel文件,读取Excel内容,添加到DataGridView中并

发布时间:2020-12-17 00:24:44 所属栏目:大数据 来源:网络整理
导读:'Excel添加:工程-参照追加→COM→Microsoft Excel *.* ObjectLibrary 'DataGridView 列 枚举型定义 Private Enum DGV_ENUM COL_ROW COL_NAME COL_AGE End Enum ' Excel 列 枚举型定义 Private Enum XLS_COL_ENUM COL_ROW COL_NAME COL_AGE End Enum Private

'Excel添加:工程->参照追加→COM→Microsoft Excel *.* ObjectLibrary
'DataGridView枚举型定义
PrivateEnumDGV_ENUM
COL_ROW
COL_NAME
COL_AGE
EndEnum

'Excel 列枚举型定义
PrivateEnumXLS_COL_ENUM
COL_ROW
COL_NAME
COL_AGE
EndEnum
Private
SubBTN_LOAD_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesBTN_LOAD.Click
DimxlAppExcelFileAsExcel.Application
DimxlBookAsExcel.Workbook
DimxlSheetAsExcel.Worksheet
DimintColNumAsInteger
DimintRowNumAsInteger
DimblnAddRowAsBoolean
'生成新的instance
xlAppExcelFile =NewExcel.Application
'在已有的Excel,指定文件路径,打开Book
xlBook = xlAppExcelFile.Workbooks.Open("文件路径")
'不表示Excel
xlAppExcelFile.Visible =False
'禁止显示对话框和警告消息
xlAppExcelFile.DisplayAlerts =False
'取消任务栏中的窗口选项
xlAppExcelFile.ShowWindowsInTaskbar =False
xlSheet = xlBook.Sheets(1)
intRowNum = xlSheet.UsedRange.Rows.Count
intColNum = xlSheet.UsedRange.Columns.Count

ForintXlsIAsInteger= 1TointRowNum
'Excel中名字空的话、… … 很出。
IfTrim$(xlSheet.Cells(intXlsI,XLS_COL_ENUM.COL_NAME).Value).Equals(String.Empty)Then
… …

ExitFor'退出整个循环(intXlsI)。
'Continue For 退出当前循环。
EndIf
'将Excel读取放到DataGridView
''RemoveHandler DGV.Invalidated,AddressOf DGV_Invalidated
Me.DGV.AllowUserToAddRows =False
Me.DGV.AllowUserToDeleteRows =False
DimintRowCntAsInteger=Me.DGV_EDIT.Rows.Add()
DGV.Value(DGV_ENUM.COL_ROW,intRowCnt) = Trim$(xlSheet.Cells(intXlsI,XLS_COL_ENUM.COL_ROW).Value)
'如果DataGridView中有Combo Box控件,不能将Combo Box的Code值直接赋值,是整个值。
'例: A:小王 B:小张 不能将Code A或B,赋到Grid中的Combo Box。用[A:小王]-> OK
CMB_HIDE_NAME_LIST.SetSelectCondition("Combo Box的Code值")
DGV.Value(DGV_ENUM.COL_NAME,intRowCnt) = CMB_HIDE_NAME_LIST.SelectedItem
DGV.Value(DGV_ENUM.COL_AGE,XLS_COL_ENUM.COL_AGE).Value)
Me.DGV.AllowUserToAddRows =True
Me.DGV.AllowUserToDeleteRows =True
''AddHandler DGV.Invalidated,AddressOf DGV_Invalidated
NextintXlsI

'Excel 终了(关闭会有一定的延时)
xlSheet =Nothing
xlbook.Close()
xlBook =Nothing
xlAppExcelFile.Quit()
xlAppExcelFile =Nothing
'System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
'System.Runtime.InteropServices.Marshal.ReleaseComObject(xlAppExcelFile)
EndSub

'@******************************************************************************
'@ 名  称: DGV_EDIT_KeyDown
'@ 内  容: 用DEL键,删除GridView当前行
'@ 备  考:
'@******************************************************************************

PrivateSubDGV_EDIT_KeyDown(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.KeyEventArgs)HandlesDGV_EDIT.KeyDown
'Me.DGV_EDIT.AllowUserToAddRows = True(自动添加行)
If DGV_EDIT.CurrentRow.Index <> DGV_EDIT.Rows.Count - 1Then
Ife.KeyCode = Keys.DeleteThen
DGV_EDIT.Rows.RemoveAt(DGV_EDIT.CurrentRow.Index)
DGV_EDIT.Refresh()
EndIf
EndIf
EndSub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读