以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 导入数据 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=171395) |
-- 作者:xingshou -- 发布时间:2021/8/28 11:33:00 -- 导入数据 老师您好,我想问一下导入数据,这是我的代码,我新增一条他就出很多的空值应该怎么修改呢 Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog 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("t1").StopRedraw() \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"姓名","学号","专业","学校","实习单位"} \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 1 To Sheet.Rows.Count -1 Dim bh As String = sheet(n,0).Text If DataTables("t1").Find("学号 = \'" & bh & "\'") Is Nothing Then \'如果不存在同编号的订单 Dim r As Row = Tables("t1").AddNew() For m As Integer = 0 To nms.Length - 1 r(nms(m)) = Sheet(n,m).Value Next End If Next Tables("t1").ResumeRedraw() End If |
-- 作者:xingshou -- 发布时间:2021/8/28 11:34:00 -- Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog 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("t1").StopRedraw() \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"姓名","学号","专业","学校","实习单位"} \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 1 To Sheet.Rows.Count -1 Dim bh As String = sheet(n,0).Text If DataTables("t1").Find("学号 = \'" & bh & "\'") Is Nothing Then \'如果不存在同编号的订单 Dim r As Row = Tables("t1").AddNew() For m As Integer = 0 To nms.Length - 1 r(nms(m)) = Sheet(n,m).Value Next End If Next Tables("t1").ResumeRedraw() End If 还有一个如果表的列顺序不一样应该怎么导入呢
|
-- 作者:有点蓝 -- 发布时间:2021/8/28 11:44:00 -- 参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=135684 |
-- 作者:xingshou -- 发布时间:2021/8/28 11:51:00 -- 拿老师如果我foxtable是"姓名","学号","专业","学校","实习单位" excel是 学号 姓名专业 学校 实习单位怎么 弄 |
-- 作者:有点蓝 -- 发布时间:2021/8/28 12:04:00 -- 3楼链接里有,使用字典把对应关系存下来。如果看不懂,就上传实例 |
-- 作者:xingshou -- 发布时间:2021/8/28 13:51:00 -- Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls|Word文件|*.doc|Access文件|*.mdb" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim nms() As String = {"学号","姓名","专业","学校","实习单位"} Dim nms2() As String = {"学号","姓名","专业","学校","实习单位"} Dim dict As new Dictionary(of String,String) For m As Integer = 0 To nms.Length - 1 dict.add(nms2(m),nms(m)) Next Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("t1").StopRedraw() \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 1 To Sheet.Rows.Count -1 If Sheet(n,0).text > "" Then Dim r As Row = Tables("t1").AddNew() For m1 As Integer = 0 To Sheet.Cols.Count - 1 If dict.ContainsKey(Sheet(0,m1).Value) r(dict(Sheet(0,m1).Value)) = Sheet(n,m1).Value End If Next End If Next Tables("t1").ResumeRedraw() End If
|
-- 作者:xingshou -- 发布时间:2021/8/28 13:51:00 -- 老师我想问一下excel没有处理老师列的,怎么设置可以让他,导入的数据都添加处理人为username的 |
-- 作者:有点蓝 -- 发布时间:2021/8/28 13:55:00 -- For n As Integer = 1 To Sheet.Rows.Count -1 If Sheet(n,0).text > "" Then Dim r As Row = Tables("t1").AddNew() For m1 As Integer = 0 To Sheet.Cols.Count - 1 If dict.ContainsKey(Sheet(0,m1).Value) r(dict(Sheet(0,m1).Value)) = Sheet(n,m1).Value End If Next r("处理人") = user.name End If Next
[此贴子已经被作者于2021/8/28 13:55:14编辑过]
|