以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何用代码控制将一个excel的几列导入到本地表中 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189419) |
-- 作者:guosheng -- 发布时间:2023/11/30 16:12:00 -- 如何用代码控制将一个excel的几列导入到本地表中 本地表已创建有【列1,列2,列3】,excel有【列1,列3,列4,列5】 不知道excel的表列导入时和本地表的列怎么控制对应关系,另外,这些操作大概代码怎么实现不太清楚。
|
-- 作者:有点蓝 -- 发布时间:2023/11/30 16:14:00 -- 使用Merger:http://www.foxtable.com/webhelp/topics/0685.htm,只要有相同列名的就可以导入,不用关心怎么对应 |
-- 作者:guosheng -- 发布时间:2023/11/30 16:51:00 -- Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog \'dlg.Filter= "Access文件|*.mdb" \'设置筛选器 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文件(文件名是:测试导入.xlsx),点击确定后,提示下面的错误。怎么回事啊? Microsoft Access 数据库引擎找不到对象“测试导入”。请确保该对象存在,并正确拼写其名称和路径名。如果“测试导入”不是本地对象,请检查网络连接或与服务器管理员联系。
[此贴子已经被作者于2023/11/30 16:54:37编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/11/30 17:00:00 -- 是要把mdb的数据导入execl文件?而不是把execl文件导入mdb数据库? |
-- 作者:guosheng -- 发布时间:2023/11/30 17:11:00 -- 是要把本地的excel文件导入到狐表的【内部数据源表】中啊。 这样还是提示同样的错误,怎么回事啊? Dim mg As New Merger mg.SourcePath = "C:\\Users\\diansggss\\Desktop\\测试导入.xlsx" mg.Format = "excel2007" \'指定格式 mg.SourceTableName = "测试导入" mg.DataTableName = "结转更新数据" mg.Merge()
[此贴子已经被作者于2023/11/30 17:11:50编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/11/30 17:21:00 -- 测试导入.xlsx里面sheet的名称是什么? mg.SourceTableName = "这里改为sheet名称$" |
-- 作者:guosheng -- 发布时间:2023/11/30 17:27:00 -- 可以了。有办法动态获取到第一个sheet的名字吗 [此贴子已经被作者于2023/11/30 17:27:49编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/11/30 17:29:00 -- http://www.foxtable.com/webhelp/topics/1150.htm Dim Book As New XLS.Book("c:\\reports\\test.xls")
msgbox(Book.Sheets(0).name) |
-- 作者:guosheng -- 发布时间:2023/12/1 13:26:00 -- 能否获取第一个sheet的各列的第一行的列名啊,循环看看,是否跟内部数据源的列名一致啊 |
-- 作者:有点蓝 -- 发布时间:2023/12/1 13:45:00 -- Dim Book As New XLS.Book("c:\\reports\\test.xls") Dim Sheet As XLS.Sheet = Book.Sheets(0) For n As Integer = 1 To Sheet.Cols.Count -1 msgbox(Sheet(0,n).text) next
|