Foxtable(狐表)用户栏目专家坐堂 → 窗口按钮导入导出功能如何实现


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

主题:窗口按钮导入导出功能如何实现

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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
窗口按钮导入导出功能如何实现  发帖心情 Post By:2013/6/26 9:02:00 [只看该作者]

窗口上有两个table 控件,绑定了两张表(这两张表具有关联),旁边有导入和导出两个按钮,现在不知道如何实现导入功能,就是单击导入按钮后,会弹出一个对话框,让用户选择导入的文件,然后按照一定的规则进行转换成为表中的数据。同时导出功能现在已经基本实现,就是想导出的时候也能够弹出对话框让用户选择保存路径,文件格式和文件名。而不是系统写死的路径名。

窗体界面如下:

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130626090150.png
图片点击可在新窗口打开查看
导出代码如下:

Dim Book As New XLS.Book(ProjectPath & "模板\设备说明.xlsx")
Dim fl As String = ProjectPath & "Reports\设备说明.xlsx"
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/26 9:07:00 [只看该作者]


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/26 9:08:00 [只看该作者]

你可以看看:

 

http://www.foxtable.com/help/topics/0329.htm

 

例如:

 

Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim Book As New XLS.Book(ProjectPath & "模板\设备说明.xlsx")
    Book.Build() '生成细节区
    Book.Save(dlg.FileName) '保存工作簿
    Dim Proc As New Process '打开工作簿
    Proc.File = dlg.FileName
    Proc.Start()
End If


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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2013/6/26 10:19:00 [只看该作者]

谢谢你的回答,我按照帮助的要求在导入的时候却提示我该表已存在,我想是不是只能将excel的表数据导入到新的表中?能不能将excel的数据作为一条新的记录导入到已经存在的表中?如果能的话,那在导入过程中excel的格式跟目标表的格式不一样的话要怎么相互转换识别?

导入代码:

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel 97-2003 工作簿(*.xls)|*.xls|Excel 工作簿(*.xlsx)|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim ip As New Importer
    ip.SourcePath = dlg.FileName '指定数据文件
    ip.SourceTableName = "基本信息表" '指定要导入的表
    ip.NewTableName ="基本信息表" '导入后的表名
    ip.Import()
End If


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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2013/6/26 10:20:00 [只看该作者]

谢谢你的回答,我按照帮助的要求在导入的时候却提示我该表已存在,我想是不是只能将excel的表数据导入到新的表中?能不能将excel的数据作为一条新的记录导入到已经存在的表中?如果能的话,那在导入过程中excel的格式跟目标表的格式不一样的话要怎么相互转换识别?(excel的格式就是我导出的时候的模板格式,而不是和目标表一样的格式)

导入代码:

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel 97-2003 工作簿(*.xls)|*.xls|Excel 工作簿(*.xlsx)|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim ip As New Importer
    ip.SourcePath = dlg.FileName '指定数据文件
    ip.SourceTableName = "基本信息表" '指定要导入的表
    ip.NewTableName ="基本信息表" '导入后的表名
    ip.Import()
End If


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/26 10:22:00 [只看该作者]

除了导入,还有合并啊:

http://www.foxtable.com/help/topics/0685.htm


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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2013/6/26 10:53:00 [只看该作者]

可否告知qq或者联系方式,我在论坛发不了图片了,不知道为什么,总是提示我"一次只能上传三个文件”,可是我什么都没上传,想将上传的图片删了,提示没有管理权限。可以加我qq:1169755725,谢谢!


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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2013/6/26 11:28:00 [只看该作者]

终于可以发了。大神,合并有问题啊,不知道怎么解决?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130626104745.png
图片点击可在新窗口打开查看

 

合并的原始excel是设备说明.xlsx,sheet名称是设备说明,想要合并到的表是基本信息表和附属设备表。

基本信息表的列比excel里显示的列多。附属设备表也是比excel显示的列多。

基本信息表和附属设备表:  


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130626103212.png
图片点击可在新窗口打开查看

想要合并的excel格式:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:设备说明.xlsx

请大神帮助解答疑惑,谢谢!

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/26 11:31:00 [只看该作者]

你这个是excel2007/2010的格式,记得设置文件格式:

 

    Dim mg As New Merger
    mg.SourcePath = 文件名
    mg.Format = "excel2007" '指定格式
    mg.SourceTableName = "订单" '指定要合并的表
    mg.DataTableName = "订单" '指定接收数据的表
    mg.Merge() '开始合并


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


加好友 发短信
等级:幼狐 帖子:153 积分:1174 威望:0 精华:0 注册:2013/6/19 10:54:00
  发帖心情 Post By:2013/6/26 13:29:00 [只看该作者]

提示找不到对象啊,怎么回事呢?

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130626132734.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130626132743.png
图片点击可在新窗口打开查看
代码:

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel 97-2003 工作簿(*.xls)|*.xls|Excel 工作簿(*.xlsx)|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel2007" '指定格式
    mg.SourceTableName = "设备说明"
    mg.DataTableName = "基本信息表"
    mg.Merge()
End If

其中设备说明是Excel的名称,也是excel里面sheet1的表名称。

基本信息表示项目中表名称。


 回到顶部
总数 14 1 2 下一页