Foxtable(狐表)用户栏目专家坐堂 → [求助]我需要导入3万条数据,如何快速导入?Excel标题开头为数字


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

主题:[求助]我需要导入3万条数据,如何快速导入?Excel标题开头为数字

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


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
[求助]我需要导入3万条数据,如何快速导入?Excel标题开头为数字  发帖心情 Post By:2018/1/3 1:52:00 [只看该作者]

1、我需要导入3万条数据,如何快速导入?
使用以下代码快些吗?
Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim ip As New Importer
    ip.SourcePath = dlg.FileName '指定数据文件
    ip.SourceTableName = "原始数据" '指定要导入的表
    ip.NewTableName = "原始数据1" '导入后的表名
    ip.Import()
End If
可是每次导入时会出现错误提示:
.NET Framework 版本:2.0.50727.8794
Foxtable 版本:2017.12.18.1
错误所在事件:
详细错误信息:
未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。
求解,如何解决!



2、我也试用过“数据合并”的方式,可是效率比较低!

被导入的Excel文件中有很多列,如:学号、班级、姓名、民族等,但是有两列为数字开头分别为“50米”和“800米”。因为这个Excel是在原文件内下载的,所以不可修改标题行。
如果使用“数据合并”的方式,Excel有一列为“50米”,我希望导入到foxtable中列名为“短跑”,标题为“50米”的列中。
可是列名不一样导入不了啊!求解!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/3 9:21:00 [只看该作者]

1、

 

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim ip As New Importer
    ip.format = "Excel"
    ip.SourcePath = dlg.FileName '指定数据文件
    ip.SourceTableName = "原始数据$" '指定要导入的表
    ip.NewTableName = "原始数据1" '导入后的表名
    ip.Import()
End If

 

安装一下这个 http://www.foxtable.com/download/AccessDatabaseEngine.exe

 

2、参考 http://www.foxtable.com/webhelp/scr/0685.htm

 

你可以设置 fieldMaps

 

FieldMaps
这是一个集合,要合并的表和接收数据的表的字段名称存在不一致的情况下,可以用此集合指定两个表之间字段的对应关系。
假定要合并的表中某一字段的名称为“ID”,合并的时候,需要将该列的内容合并到接收表中的"编号"列,可以设置代码:
Dim mg As New Merger
mg.FieldMaps.Add("ID","编号")


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


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2018/1/3 12:46:00 [只看该作者]

使用导入的方法:
修改了代码,安装了软件。运行后还是出错:
SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。

求解!
[此贴子已经被作者于2018/1/3 12:47:01编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/3 15:49:00 [只看该作者]

红色代码写错

 

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim ip As New Importer
    ip.format = "Excel"
    ip.SourcePath = dlg.FileName '指定数据文件
    ip.SourceTableName = "sheet1$" '指定要导入的表
    ip.NewTableName = "原始数据1" '导入后的表名
    ip.Import()
End If


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


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2018/1/3 18:19:00 [只看该作者]

这才发现导入表后是在foxtable中新建了一个表,而合并数据才是在原来表中进行修改和添加!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/3 22:01:00 [只看该作者]

以下是引用jjjeyes在2018/1/3 18:19:00的发言:
这才发现导入表后是在foxtable中新建了一个表,而合并数据才是在原来表中进行修改和添加!

 

是的,merger的代码和4楼差不多的,改一下即可。


 回到顶部