用什么开发工具,用什么开发模式来实现所要求的功能呢?公司内暂时只有tuenhai自己运用,要实现的功能也不多,在一开始并没有必要用复杂的大型数据库系统。为方便信息共享,tuenhai决定用VB.NET调用Excel来实现功能模块。

紫金ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
为什么用VB.NET而不用C#,因为Excel中有个VBA,其语法和VB.NET是近似的。而且,VB.NET和C#的区别主要是语法,而非功能。tuenhai现在只要求实现用程序自动安排《自制件生产计划》,这个功能不用VB.NET,单用VBA也能轻易实现。但是,考虑到以后可能的功能扩充、升级,还是用VB.NET。VB.NET是面向一代的开发工具,功能强大,而且VB.NET调用Excel也很方便。不推荐用VB6,VB.NET的入门及初级应用并不难,为何还要去用早期版本,而不用最新版本,掌握最新技术呢!
用VB.NET调用Excel排生产计划
软件构思是这样的:
先在Excel里定制好《自制件生产计划》的样表(模板),保存为自制件生产计划.xls,其中只有一个sheet:样表。在样表中设置好各种格式,填写好固定项。再新建一空白workbook,保存为2004年自制件生产计划.xls。
新建一VB.NET应用程序,命名为生产计划报表。在窗体上放很少几个控件,如:几个文本框,用来输入产品数量;checkbox用来先选择是正式生产计划还是增补生产计划;另外用二个文本框用来输入计划时间和计划编号。
点击button,程序打开自制件生产计划.xls和2004年自制件生产计划.xls,把样表copy到2004年自制件生产计划.xls,并自动在目标sheet中填写各自制件需要生产的数量。
下面是实现代码及详细注释。注意,要先添加com引用Microsoft Excel Object Library,tuenhai的是office 2003,引用Microsoft Excel 11.0 Object Library。
- Private Sub producePlan()
 - Call killEXCEL() '调用杀死EXCEL进程过程
 - '以下代码判断用户填写信息是否完整,如不完整则提示信息并退出.
 - If chkFormal.Checked = False And chkSubjoin.Checked = False Then
 - MsgBox("是正式计划还是增补计划??", MsgBoxStyle.Critical, "请先选择计划性质")
 - Exit Sub
 - End If
 - If txtDay.Text = "2004年月" Then
 - MsgBox("什么月份的生产计划???", MsgBoxStyle.Critical, "请填写计划时间")
 - Exit Sub
 - End If
 - If txt703.Text = Nothing Or txt909.Text = Nothing Or txt931.Text = Nothing Or txt932.Text = Nothing Then
 - MsgBox("请填写计划台数!", MsgBoxStyle.Critical, "计划台数填写不全")
 - Exit Sub
 - End If
 - If chkFormal.Checked = True And chkSubjoin.Checked = True Then
 - MsgBox("正式和增补两者只能选一!", MsgBoxStyle.Critical, "请重新选择计划性质")
 - Exit Sub
 - End If
 - '以下代码即是计算各自制件的数量,用中文来命名是免去代码注释
 - Dim 涂氟龙面板703 As Integer = CType(txt703.Text, Integer)
 - Dim 钛金面板909 As Integer = CType(txt909.Text, Integer)
 - Dim 油磨不锈钢面板931 As Integer = CType(txt931.Text, Integer)
 - Dim 油磨不锈钢面板932 As Integer = CType(txt932.Text, Integer)
 - Dim 底盘24 As Integer = 涂氟龙面板703
 - Dim 底盘22 As Integer = 钛金面板909
 - Dim 底盘41A As Integer = 油磨不锈钢面板931
 - Dim 底盘41B As Integer = 油磨不锈钢面板931
 - Dim 水盘25 As Integer = 涂氟龙面板703
 - Dim 水盘24 As Integer = 涂氟龙面板703
 - Dim 水盘22 As Integer = 钛金面板909 * 2
 - Dim 中心支架2 As Integer = 涂氟龙面板703 + 钛金面板909
 - Dim 长支架931 As Integer = (油磨不锈钢面板931 + 油磨不锈钢面板932) * 2
 - Dim 支架931U As Integer = 油磨不锈钢面板931 * 2
 - Dim 支架932U As Integer = 油磨不锈钢面板932 * 2
 - Dim 磁头抱攀 As Integer = (钛金面板909 + 油磨不锈钢面板931 + 油磨不锈钢面板932) * 2
 - Dim 电池抱攀 As Integer = (涂氟龙面板703 + 钛金面板909 + 油磨不锈钢面板931 + 油磨不锈钢面板932) * 2
 - Dim 三通抱攀 As Integer = 电池抱攀 / 2
 - Dim 炉头垫片 As Integer = 电池抱攀 * 3
 - '定义一个数组,方便在EXCEL中循环写入数字,也可以放在EXCEL的VBA中实现
 - Dim allNum() As Integer = _
 - {涂氟龙面板703, 钛金面板909, 油磨不锈钢面板931, 油磨不锈钢面板932, _
 - 底盘24, 底盘22, 底盘41A, 底盘41B, _
 - 水盘25, 水盘24, 水盘22, _
 - 中心支架2, 长支架931, 支架931U, 支架932U, _
 - 磁头抱攀, 电池抱攀, 三通抱攀, 炉头垫片}
 - Dim excelApp As New Excel.Application
 - Dim excelBook As Excel.Workbook '自制件生产计划.xls
 - Dim excelbook2004 As Excel.Workbook '2004自制件生产计划.xls
 - Dim excelWorksheet As Excel.Worksheet
 - Dim planProperty As String '计划性质,是正式计划还是增补计划
 - Try '建议用try方式捕捉错误,处理错误
 - excelBook = excelApp.Workbooks.Open(Application.StartupPath & "\自制件生产计划.xls")
 - excelbook2004 = excelApp.Workbooks.Open(Application.StartupPath & "\2004年自制件生产计划.xls")
 - excelWorksheet = CType(excelBook.Worksheets("样表"), Excel.Worksheet)
 - excelWorksheet.Copy(After:=excelbook2004.Sheets("sheet1"))
 - '把样表copy到<2004年自制件生产计划>workbook中sheet1的后面
 - excelApp.Visible = True '设置工作薄为可视
 - If chkFormal.Checked = True Then
 - planProperty = "正式"
 - ElseIf chkSubjoin.Checked = True Then
 - planProperty = "增补"
 - End If
 - With excelbook2004.ActiveSheet '用with 简化代码
 - .Range("D1").Value = txtDay.Text '计划时间
 - .Range("C2").Value = "laoban公司" & txtDay.Text & planProperty & "采购计划" '计划依据
 - .Range("C25").Value = Now.Date.Today.ToShortDateString '这就是制表日期
 - .Range("F2").Value = txtNO.Text '计划编号
 - End With
 - For i As Integer = 0 To 18 '共19种自制件
 - excelbook2004.ActiveSheet.cells(4 + i, 4) = allNum(i) '4+i是行号,第二个4是列号
 - Next '循环把各自制件数填入<2004年自制件生产计划>中的活动工作表相应位置
 - Catch ex As Exception '捕捉错误,并回收资源,显示错误
 - excelBook = Nothing
 - excelbook2004 = Nothing
 - excelWorksheet = Nothing
 - excelApp = Nothing
 - GC.Collect(0)
 - MsgBox(ex.ToString) '显示错误信息,以查找定位
 - Exit Sub '出错就退出
 - Finally '这里的代码一定会被执行到
 - excelBook = Nothing
 - excelbook2004 = Nothing
 - excelWorksheet = Nothing
 - excelApp = Nothing
 - GC.Collect(0)
 - End Try
 - MsgBox("已排好自制件生产计划,请查看")
 - excelBook = Nothing
 - excelbook2004 = Nothing
 - excelWorksheet = Nothing
 - excelApp = Nothing
 - GC.Collect(0)
 - End Sub
 
【编辑推荐】
                当前名称:讲述VB.NET调用Excel的好处
                
                当前链接:http://www.csdahua.cn/qtweb/news14/55264.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网