以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 导入excel (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=99389) |
-- 作者:huhu -- 发布时间:2017/4/18 16:18:00 -- 导入excel Dim tsxx As WinForm.Label = e.Form.Controls("Label42") tsxx.text = "正在导入******,请耐心等待!" Dim Wb As MSExcel.Workbook = App.WorkBooks.Open("D:\\销售出库单列表.xls") Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Tables("销售出库单列表").StopRedraw() \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim ra = ws.UsedRange Dim nms() As String = {"制单人","仓库编码","仓库","销售订单号","发货单号","出库日期","出库单号","出库类别","销售部门","业务员","客户名称","备注","存货编码","存货名称","主计量单位","数量","货运单号","发货地址"} \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 2 To ra.Rows.Count Dim ckdh As String = ws.cells(n,8).Text Dim chbm As String = ws.cells(n,14).text If DataTables("销售出库单列表").SQLFind("出库单号 = \'" & ckdh & "\' and 存货编码 = \'" & chbm & "\'") Is Nothing Then \'如果不存在同编号的计划表 Dim r As Row = Tables("销售出库单列表").AddNew() For m As Integer = 0 To nms.Length - 1 r(nms(m)) = ws.cells(n,m+1).Value r("导入日期") = Date.Today r.save Next End If Next 假如,excel有2行完全相同的数据,希望第一次都能导入,下次再导入的时候跳过去。这个条件判断怎么写?
|
-- 作者:huhu -- 发布时间:2017/4/18 16:58:00 -- 帖子可不能沉啊。在线等。 |
-- 作者:有点蓝 -- 发布时间:2017/4/18 17:39:00 -- 红色代码就是判断的。看看Excel数据是否有空格或者回车等字符 |
-- 作者:huhu -- 发布时间:2017/4/18 17:56:00 -- 可不是这个意思哦。 比如我有10行完全一样的数据,如果按照红色代码,那么只能导入第一行,剩下的9行都导不进去。 但我的需求是,第一次是把这10行完全一样的数据都导进去。但后期不论导几次,excel里面的这10行都不能导入,要直接跳过。 是这个意思
|
-- 作者:有点蓝 -- 发布时间:2017/4/18 18:09:00 -- 虽然可以做到。但是非常麻烦,效率非常低。不建议做这样的功能 |