Foxtable(狐表)用户栏目专家坐堂 → Excel格式的表拆分导入


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

主题:Excel格式的表拆分导入

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
Excel格式的表拆分导入  发帖心情 Post By:2022/3/16 8:39:00 [只看该作者]

excel格式的表A有姓名、身份证、开始日期、截止日期四个字段;(例如:开始日期:2022年1月3日;截止日期:2022年5月25日)
foxtable中的数据表B:姓名、身份证、所属日期 三个字段;
我想实现将A表导入到B表,使得表B有5个记录,所属日期分别为:2022年1月20日、2022年2月20日、2022年3月20日、2022年4月20日、2022年5月20日
请指教,谢谢!

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


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/16 8:51:00 [只看该作者]

比如

Dim d1 As Date = #01/03/2022#
Dim d2 As Date = #05/25/2022#
Dim d3 As Date = new Date(d1.year,d1.month,20)
Do While d3 < d2
    Output.Show(d3)
    d3 = d3.addmonths(1)
Loop

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
  发帖心情 Post By:2022/3/16 18:30:00 [只看该作者]

我没表达清楚,我发个实例请老师帮看下。谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:调试表.xlsx


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


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/17 8:37:00 [只看该作者]

拆分日期就是2楼的用法,至于获取导入的数据,参考:http://www.foxtable.com/webhelp/topics/2334.htm

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
  发帖心情 Post By:2022/3/17 15:36:00 [只看该作者]

我学着试了好多次,只能导入一条记录,且日期不能正确显示。主要是导入表(4个列)和被导入表(3个列)的列数不一致,这个循环我不会弄,,烦请老师示范一下,

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


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/17 15:38:00 [只看该作者]

请把您写的代码发上来看看

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


加好友 发短信
等级:三尾狐 帖子:651 积分:6614 威望:0 精华:0 注册:2016/12/27 21:05:00
  发帖心情 Post By:2022/3/17 19:08:00 [只看该作者]

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls"
If dlg.ShowDialog =DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("参加企业保险明细表").StopRedraw()
    Dim nms() As String = {"姓名","身份证号码","开始日期","截止日期"}
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim d1 As Date = Sheet(n,nms.length-2).Value
        Dim d2 As Date = Sheet(n,nms.length-1).Value
        Dim d3 As Date = new Date(d1.year,d1.month,20)
        Dim r As Row = Tables("参加企业保险明细表").AddNew()
        Do While d3 < d2
            For m As Integer = 0 To nms.Length - 3
                r(nms(m)) = Sheet(n,m).Value
                r("在保月份")= d3.addmonths(1) 
            Next
        Loop
    Next
End If
Tables("参加企业保险明细表").ResumeRedraw()
DataTables("参加企业保险明细表").Save

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


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/17 20:52:00 [只看该作者]

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls"
If dlg.ShowDialog =DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("参加企业保险明细表").StopRedraw()
    Dim nms() As String = {"姓名","身份证号码","开始日期","截止日期"}
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim d1 As Date = Sheet(n,2).Value
        Dim d2 As Date = Sheet(n,3).Value
        Dim d3 As Date = new Date(d1.year,d1.month,20)
        Dim r As Row
        Do While d3 < d2
r = Tables("参加企业保险明细表").AddNew()
                r("姓名") = Sheet(n,0).Value
                r("身份证") = Sheet(n,1).Value
                r("在保月份")= d3
d3 = d3.addmonths(1) 
        Loop
    Next
End If
Tables("参加企业保险明细表").ResumeRedraw()
DataTables("参加企业保险明细表").Save

 回到顶部