'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 PrivateSubBTN_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 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|