Foxtable(狐表)用户栏目专家坐堂 → 如何以对话框形式选择Excel文件并将内容直接导入既有表中


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

主题:如何以对话框形式选择Excel文件并将内容直接导入既有表中

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


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

参考:http://www.foxtable.com/webhelp/topics/0328.htm

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= 
"Excel文件|*.xls;*.xlsx" '设置筛选器
If
 dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
Dim Book As New XLS.Book(dlg.FileName
……
End
 
If

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


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

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx|Word文件|*.doc;*.docx|Access文件|*.mdb" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show("你选择的是:" & dlg.FileName,"提示") '提示用户选择的文件

Dim Book As New XLS.Book(dlg.FileName) 
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("现场速报").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"序号","检测位置","技术要求","检测结果","结果判定","备注"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 8 To Sheet.Rows.Count -1
    Dim r As Row = Tables("现场速报").AddNew()
    For m As Integer = 0 To nms.Length - 1
         r(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables("现场速报").ResumeRedraw()
End If

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


加好友 发短信
等级:超级版主 帖子:106356 积分:540921 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/4 8:34:00 [显示全部帖子]

……
For n As Integer = 8 To Sheet.Rows.Count -1
if Sheet(n,0).text = “” then exit for
    Dim r As Row = Tables("现场速报").AddNew()
    For m As Integer = 0 To nms.Length - 1
         r(nms(m)) = Sheet(n,m).Value
    Next
Next

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


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

可以选择多个文件:http://www.foxtable.com/webhelp/topics/0328.htm

但是没有办法指定选择顺序

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


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

自己测试没有问题即可

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


加好友 发短信
等级:超级版主 帖子:106356 积分:540921 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/4 11:08:00 [显示全部帖子]

这个比较麻烦,合并单元格,其实是有第一行有数据,其它2行是没有的。

只能这样,判断单元格如果没有数据,就取上一行的数据。

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


加好友 发短信
等级:超级版主 帖子:106356 积分:540921 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/4 12:01:00 [显示全部帖子]

本行:Sheet(n,m).Value

上一行就是:Sheet(n-1,m).Value,再上一行Sheet(n-2,m).Value

if Sheet(n,m).text = “” then 没有值

 回到顶部