自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

講述VB.NET調(diào)用Excel的好處

開發(fā) 后端
這里介紹VB.NET調(diào)用Excel,為什么用VB.NET而不用C#,因為Excel中有個VBA,其語法和VB.NET是近似的。而且,VB.NET和C#的區(qū)別主要是語法,而非功能。

用什么開發(fā)工具,用什么開發(fā)模式來實現(xiàn)所要求的功能呢?公司內(nèi)暫時只有tuenhai自己運用,要實現(xiàn)的功能也不多,在一開始并沒有必要用復(fù)雜的大型數(shù)據(jù)庫系統(tǒng)。為方便信息共享,tuenhai決定用VB.NET調(diào)用Excel來實現(xiàn)功能模塊。

為什么用VB.NET而不用C#,因為Excel中有個VBA,其語法和VB.NET是近似的。而且,VB.NET和C#的區(qū)別主要是語法,而非功能。tuenhai現(xiàn)在只要求實現(xiàn)用程序自動安排《自制件生產(chǎn)計劃》,這個功能不用VB.NET,單用VBA也能輕易實現(xiàn)。但是,考慮到以后可能的功能擴充、升級,還是用VB.NET。VB.NET是面向一代的開發(fā)工具,功能強大,而且VB.NET調(diào)用Excel也很方便。不推薦用VB6,VB.NET的入門及初級應(yīng)用并不難,為何還要去用早期版本,而不用最新版本,掌握最新技術(shù)呢!

用VB.NET調(diào)用Excel排生產(chǎn)計劃

軟件構(gòu)思是這樣的:

先在Excel里定制好《自制件生產(chǎn)計劃》的樣表(模板),保存為自制件生產(chǎn)計劃.xls,其中只有一個sheet:樣表。在樣表中設(shè)置好各種格式,填寫好固定項。再新建一空白workbook,保存為2004年自制件生產(chǎn)計劃.xls。

新建一VB.NET應(yīng)用程序,命名為生產(chǎn)計劃報表。在窗體上放很少幾個控件,如:幾個文本框,用來輸入產(chǎn)品數(shù)量;checkbox用來先選擇是正式生產(chǎn)計劃還是增補生產(chǎn)計劃;另外用二個文本框用來輸入計劃時間和計劃編號。

點擊button,程序打開自制件生產(chǎn)計劃.xls和2004年自制件生產(chǎn)計劃.xls,把樣表copy到2004年自制件生產(chǎn)計劃.xls,并自動在目標(biāo)sheet中填寫各自制件需要生產(chǎn)的數(shù)量。

下面是實現(xiàn)代碼及詳細注釋。注意,要先添加com引用Microsoft Excel Object Library,tuenhai的是office 2003,引用Microsoft Excel 11.0 Object Library。

  1. Private Sub producePlan()  
  2. Call killEXCEL() '調(diào)用殺死EXCEL進程過程  
  3.  
  4. '以下代碼判斷用戶填寫信息是否完整,如不完整則提示信息并退出.  
  5. If chkFormal.Checked = False And chkSubjoin.Checked = False Then  
  6. MsgBox("是正式計劃還是增補計劃??", MsgBoxStyle.Critical, "請先選擇計劃性質(zhì)")  
  7. Exit Sub  
  8. End If  
  9. If txtDay.Text = "2004年月" Then  
  10. MsgBox("什么月份的生產(chǎn)計劃???", MsgBoxStyle.Critical, "請?zhí)顚懹媱潟r間")  
  11. Exit Sub  
  12. End If  
  13. If txt703.Text = Nothing Or txt909.Text = Nothing Or txt931.Text = Nothing Or txt932.Text = Nothing Then  
  14. MsgBox("請?zhí)顚懹媱澟_數(shù)!", MsgBoxStyle.Critical, "計劃臺數(shù)填寫不全")  
  15. Exit Sub  
  16. End If  
  17. If chkFormal.Checked = True And chkSubjoin.Checked = True Then  
  18. MsgBox("正式和增補兩者只能選一!", MsgBoxStyle.Critical, "請重新選擇計劃性質(zhì)")  
  19. Exit Sub  
  20. End If  
  21.  
  22. '以下代碼即是計算各自制件的數(shù)量,用中文來命名是免去代碼注釋  
  23. Dim 涂氟龍面板703 As Integer = CType(txt703.Text, Integer)  
  24. Dim 鈦金面板909 As Integer = CType(txt909.Text, Integer)  
  25. Dim 油磨不銹鋼面板931 As Integer = CType(txt931.Text, Integer)  
  26. Dim 油磨不銹鋼面板932 As Integer = CType(txt932.Text, Integer)  
  27. Dim 底盤24 As Integer = 涂氟龍面板703  
  28. Dim 底盤22 As Integer = 鈦金面板909  
  29. Dim 底盤41A As Integer = 油磨不銹鋼面板931  
  30. Dim 底盤41B As Integer = 油磨不銹鋼面板931  
  31. Dim 水盤25 As Integer = 涂氟龍面板703  
  32. Dim 水盤24 As Integer = 涂氟龍面板703  
  33. Dim 水盤22 As Integer = 鈦金面板909 * 2  
  34. Dim 中心支架2 As Integer = 涂氟龍面板703 + 鈦金面板909  
  35. Dim 長支架931 As Integer = (油磨不銹鋼面板931 + 油磨不銹鋼面板932) * 2  
  36. Dim 支架931U As Integer = 油磨不銹鋼面板931 * 2  
  37. Dim 支架932U As Integer = 油磨不銹鋼面板932 * 2  
  38. Dim 磁頭抱攀 As Integer = (鈦金面板909 + 油磨不銹鋼面板931 + 油磨不銹鋼面板932) * 2  
  39. Dim 電池抱攀 As Integer = (涂氟龍面板703 + 鈦金面板909 + 油磨不銹鋼面板931 + 油磨不銹鋼面板932) * 2  
  40. Dim 三通抱攀 As Integer = 電池抱攀 / 2  
  41. Dim 爐頭墊片 As Integer = 電池抱攀 * 3  
  42.  
  43. '定義一個數(shù)組,方便在EXCEL中循環(huán)寫入數(shù)字,也可以放在EXCEL的VBA中實現(xiàn)  
  44. Dim allNum() As Integer = _ 
  45. {涂氟龍面板703, 鈦金面板909, 油磨不銹鋼面板931, 油磨不銹鋼面板932, _  
  46. 底盤24, 底盤22, 底盤41A, 底盤41B, _  
  47. 水盤25, 水盤24, 水盤22, _  
  48. 中心支架2, 長支架931, 支架931U, 支架932U, _  
  49. 磁頭抱攀, 電池抱攀, 三通抱攀, 爐頭墊片}  
  50.  
  51. Dim excelApp As New Excel.Application  
  52. Dim excelBook As Excel.Workbook '自制件生產(chǎn)計劃.xls  
  53. Dim excelbook2004 As Excel.Workbook '2004自制件生產(chǎn)計劃.xls  
  54. Dim excelWorksheet As Excel.Worksheet  
  55. Dim planProperty As String '計劃性質(zhì),是正式計劃還是增補計劃  
  56.  
  57. Try '建議用try方式捕捉錯誤,處理錯誤  
  58.  
  59. excelBook = excelApp.Workbooks.Open(Application.StartupPath & "\自制件生產(chǎn)計劃.xls")  
  60.  
  61. excelbook2004 = excelApp.Workbooks.Open(Application.StartupPath & "\2004年自制件生產(chǎn)計劃.xls")  
  62. excelWorksheet = CType(excelBook.Worksheets("樣表"), Excel.Worksheet)  
  63. excelWorksheet.Copy(After:=excelbook2004.Sheets("sheet1"))  
  64. '把樣表copy到<2004年自制件生產(chǎn)計劃>workbook中sheet1的后面  
  65.  
  66. excelApp.Visible = True '設(shè)置工作薄為可視  
  67.  
  68. If chkFormal.Checked = True Then  
  69. planProperty = "正式" 
  70. ElseIf chkSubjoin.Checked = True Then  
  71. planProperty = "增補" 
  72. End If  
  73.  
  74. With excelbook2004.ActiveSheet '用with 簡化代碼  
  75. .Range("D1").Value = txtDay.Text '計劃時間  
  76. .Range("C2").Value = "laoban公司" & txtDay.Text & planProperty & "采購計劃" '計劃依據(jù)  
  77. .Range("C25").Value = Now.Date.Today.ToShortDateString '這就是制表日期  
  78. .Range("F2").Value = txtNO.Text '計劃編號  
  79.  
  80. End With  
  81. For i As Integer = 0 To 18 '共19種自制件  
  82. excelbook2004.ActiveSheet.cells(4 + i, 4) = allNum(i) '4+i是行號,第二個4是列號  
  83. Next '循環(huán)把各自制件數(shù)填入<2004年自制件生產(chǎn)計劃>中的活動工作表相應(yīng)位置  
  84.  
  85. Catch ex As Exception '捕捉錯誤,并回收資源,顯示錯誤  
  86. excelBook = Nothing 
  87. excelbook2004 = Nothing 
  88. excelWorksheet = Nothing 
  89. excelApp = Nothing 
  90. GC.Collect(0)  
  91. MsgBox(ex.ToString) '顯示錯誤信息,以查找定位  
  92. Exit Sub '出錯就退出  
  93. Finally '這里的代碼一定會被執(zhí)行到  
  94. excelBook = Nothing 
  95. excelbook2004 = Nothing 
  96. excelWorksheet = Nothing 
  97. excelApp = Nothing 
  98. GC.Collect(0)  
  99. End Try  
  100. MsgBox("已排好自制件生產(chǎn)計劃,請查看")  
  101.  
  102. excelBook = Nothing 
  103. excelbook2004 = Nothing 
  104. excelWorksheet = Nothing 
  105. excelApp = Nothing 
  106. GC.Collect(0)  
  107.  
  108. End Sub 

【編輯推薦】

  1. 概括VB.NET使用OracleTransaction
  2. 五分鐘了解VB.NET類構(gòu)造
  3. 討論奇妙的VB.NET屬性
  4. 詳談VB.NET編碼規(guī)范經(jīng)驗
  5. 自己動手實現(xiàn)VB.NET控件數(shù)組
責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2009-10-16 13:26:53

VB.NET Exce

2009-10-21 10:45:50

VB.NET Quic

2009-10-14 17:08:44

VB.NET使用Fil

2009-10-15 11:11:08

VB.NET Text

2009-10-15 16:39:00

VB.NET讀取INI

2009-10-23 13:22:25

VB.NET實現(xiàn)拖動圖

2009-10-10 16:44:52

VB.NET開發(fā)控件

2009-10-14 11:15:06

VB.NET Grou

2009-10-12 16:39:59

OracleTransVB.NET使用

2009-10-19 08:55:22

VB.NET多重繼承

2009-10-13 17:03:55

VB.NET面向?qū)ο?/a>

2009-11-02 15:45:03

VB.NET IEnu

2009-10-16 09:35:24

VB.NET制作透明窗

2009-10-22 09:20:46

VB.NET Proc

2009-10-29 09:57:16

VB.NET實現(xiàn)數(shù)據(jù)綁

2009-10-21 18:28:48

VB.NET表間拖放

2009-10-27 11:39:03

VB.NET事件處理程

2009-10-26 19:22:29

VB.NET使用Log

2009-11-03 17:31:01

VB.NET窗體

2010-01-15 13:30:50

VB.NET Prog
點贊
收藏

51CTO技術(shù)棧公眾號