Foxtable(狐表)用户栏目专家坐堂 → [求助]文件路径手动填写


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

主题:[求助]文件路径手动填写

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


加好友 发短信
等级:童狐 帖子:236 积分:2095 威望:0 精华:0 注册:2015/11/7 21:11:00
[求助]文件路径手动填写  发帖心情 Post By:2015/12/24 13:19:00 [显示全部帖子]

 想实现的功能就是,在窗口中添加一个textbox控件和一个button,在textbox中输入文件路径,点击button,即把textbox中指定的文件内容导入到foxtable。
或者其它方法,实现类似功能。

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


加好友 发短信
等级:童狐 帖子:236 积分:2095 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2015/12/25 9:23:00 [显示全部帖子]

以下是引用大红袍在2015/12/24 14:25:00的发言:

如果是合并excel,这样也可以

 

下载信息  [文件大小:312.0 KB  下载次数:4]
图片点击可在新窗口打开查看点击浏览该文件:excel作为数据源_合并.table

红袍哥太给力了,谢谢!图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

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


加好友 发短信
等级:童狐 帖子:236 积分:2095 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2015/12/25 10:53:00 [显示全部帖子]

以下是引用大红袍在2015/12/24 14:25:00的发言:

如果是合并excel,这样也可以

 

下载信息  [文件大小:312.0 KB  下载次数:4]
图片点击可在新窗口打开查看点击浏览该文件:excel作为数据源_合并.table

红袍哥,我在你这个基础上改了改,想实现的是直接合并选择的文件。
Dim mg As New Merger
Dim dlg As New OpenFileDialog
Dim s As String
dlg.Filter= "Excel文件|*.xlsx" '设置筛选器
s = dlg.FileName
's = "E:\可靠性\资料\test.xlsx"
mg.SourcePath = s
'mg.SourcePath = "e:\可靠性\Excel报表\订单.xlsx"
'mg.SourcePath = e.Form.Controls("TextBox1").Value
mg.Format = "excel" '指定格式
mg.SourceTableName = "sheet1$" '指定要合并的表
mg.DataTableName = "订单" '指定接收数据的表
mg.Merge() '开始合并

但是行不通,需要怎样才能将选定的文件路径复制给mg.SourcePath呢?

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


加好友 发短信
等级:童狐 帖子:236 积分:2095 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2015/12/25 11:10:00 [显示全部帖子]

以下是引用大红袍在2015/12/25 10:56:00的发言:

Dim dlg As New OpenFileDialog
dlg.Filter= "Excel文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.OK Then
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel" '指定格式
    mg.SourceTableName = "sheet1$" '指定要合并的表
    mg.DataTableName = "订单" '指定接收数据的表
    mg.Merge() '开始合并
End If


嗯嗯,这回可以了,好奇怪,为什么我上面那个就行不通,谢谢红袍哥


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


加好友 发短信
等级:童狐 帖子:236 积分:2095 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2015/12/25 13:50:00 [显示全部帖子]

将Excel文件导入或合并到foxtable过程中,有些含有特殊符号的列无法导入。例如
CY TSN FH TSN 送修至拆下时间/FH 送修至拆下时间/CY
有没有什么办法,在不改变Excel文件列名的情况下,完成数据合并

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


加好友 发短信
等级:童狐 帖子:236 积分:2095 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2016/1/13 16:55:00 [显示全部帖子]

Dim Book1 As New XLS.Book("E:\可靠性\软件\10月\飞行小时循环\73n\1月.xls")
Dim Sheet1 As XLS.Sheet = Book1.Sheets(0)
Tables("飞行小时").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = { "ACReg" ,"Msn","TsnFh","TsnCy","TsnFd","LogQty","TotFh","TotCy","Blocktime","RevFh","NonReFh","TotFd","RevCy","NRevCy","Fullp","Flights" }
''注意下面的循环变量从2开始,而不是从0开始,因为Excel表的第一行 第二行是标题
For n As Integer = 2 To Sheet1.Rows.Count -1
    Dim bh As String = Sheet1(n,1).Text
    If DataTables("飞行小时").Find("Msn = '" & bh & "'") Is Nothing Then '如果不存在同Msn的数据
        Dim r As Row = Tables("飞行小时").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet1(n,m).Value
        Next
    End If
Next
Tables("飞行小时").ResumeRedraw()

红袍哥,上面是我写的代码,但是目前只能实现将一个excel表数据导入进来,我想实现的功能是能够将E:\可靠性\软件\10月\飞行小时循环\73n路径下的所有excel都导入进来,这些数据表的格式是一样的


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


加好友 发短信
等级:童狐 帖子:236 积分:2095 威望:0 精华:0 注册:2015/11/7 21:11:00
  发帖心情 Post By:2016/1/13 19:46:00 [显示全部帖子]

先谢谢你哈,不过getfile只是返回文件名,这个在用merge合并的时候可以用。因表格的原因,无法使用merge进行合并。我这是利用代码合并,需要指定路径和文件名 :Dim Book1 As New XLS.Book("E:\可靠性\软件\10月\飞行小时循环\73n\1月.xls"),这句话怎么用getfile呢?


 回到顶部