以文本方式查看主题 - 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=175705) |
||||
-- 作者:rgbjwjb -- 发布时间:2022/3/16 8:39:00 -- Excel格式的表拆分导入 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日 请指教,谢谢!
|
||||
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2022/3/16 18:30:00 -- 我没表达清楚,我发个实例请老师帮看下。谢谢!
|
||||
-- 作者:有点蓝 -- 发布时间:2022/3/17 8:37:00 -- 拆分日期就是2楼的用法,至于获取导入的数据,参考:http://www.foxtable.com/webhelp/topics/2334.htm |
||||
-- 作者:rgbjwjb -- 发布时间:2022/3/17 15:36:00 -- 我学着试了好多次,只能导入一条记录,且日期不能正确显示。主要是导入表(4个列)和被导入表(3个列)的列数不一致,这个循环我不会弄,,烦请老师示范一下, |
||||
-- 作者:有点蓝 -- 发布时间:2022/3/17 15:38:00 -- 请把您写的代码发上来看看 |
||||
-- 作者:rgbjwjb -- 发布时间: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
|
||||
-- 作者:有点蓝 -- 发布时间: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
|