Foxtable(狐表)用户栏目专家坐堂 → 如何将excel表格的数据自动导入数据表


  共有6695人关注过本帖树形打印复制链接

主题:如何将excel表格的数据自动导入数据表

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/30 9:04:00 [显示全部帖子]


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/4 15:32:00 [显示全部帖子]

第三行开始才是内容

For n As Integer = 2 To Sheet.Rows.Count -1
    Dim xsdh As String = sheet(n,2).Text
    Dim xsdhh As String = sheet(n,3).Text
    Dim cpdh As String = sheet(n,4).Text
    Dim xssl As String = sheet(n,7).Text
    Dim jhrq As Date
    If Date.TryParse(jhrq, sheet(n,12).Text) = false then
output.show("日期值无法转换")
end if

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/4 17:31:00 [显示全部帖子]

1、

 If Date.TryParse(jhrq, sheet(n,12).Text) = False Then
改为
If Date.TryParse(sheet(n,12).Text,jhrq) = False Then

2、

If cpdh.startsWith("77105") = False Or cpdh.startsWith("77152") = False Or cpdh.startsWith("7717") = False
改为
If cpdh.startsWith("77105") = False AndAlso  cpdh.startsWith("77152") = False AndAlso cpdh.startsWith("7717") = False


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/5 8:28:00 [显示全部帖子]

定义的列名数组必须和execl的标题一致:{"销售单号","销售单行号","产品代号","销售数量","要求交货日期"}

"销售单行号"是第三列,不是第二列,肯定就出错的,可以这样:{"销售单号","","销售单行号","产品代号","销售数量","要求交货日期"},然后代码判断是空标题就跳过


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/5 11:38:00 [显示全部帖子]

For m As Integer = 0 To nms.Length - 1
if nms(m) = "" then continue for
                        If array.Indexof(nms2, nms(m)) >= 0 Then

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/5 14:32:00 [显示全部帖子]

不要画蛇添足好不,这个代码是一行的:if nms(m) = "" then continue for

如果分几行这样
if nms(m) = "" then 
continue for
‘中间不能有其它代码
end if

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/5 15:44:00 [显示全部帖子]

那是[销售单行号]列字符长度不够。这些都是基本概念呀:http://www.foxtable.com/webhelp/topics/0036.htm

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/6 9:14:00 [显示全部帖子]

Dim nms() As String = {"","","销售单号","销售单行号","产品代号","销售数量","要求交货日期"}
Dim nms2() As String = {"","","销售单号","销售单行号","产品代号","","","销售数量","","","","","要求交货日期"}

nms也改为一样,没有的用空字符串替代,保证一一对应

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/6 14:49:00 [显示全部帖子]

“2019.07.06”这种格式直接粘贴是无法识别的,要么先改为“2019-07-06”,要么使用代码导入

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/9 9:07:00 [显示全部帖子]

代码和execl一起发上来测试一下

 回到顶部
总数 14 1 2 下一页