以文本方式查看主题

-  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=90390)

--  作者:沦落深蓝
--  发布时间:2016/9/11 22:35:00
--  [求助]excel导入问题

已经在窗口中绑定了某表格A(由于该表是复杂的多表头),现希望通过代码导入与其格式完全对应一致的excel表格(已去表头,全数据),想让原表A的表头不变保留下来,只导入excel中的数据,代码怎么改??或者说有什么好的方法实现??老师求解图片点击可在新窗口打开查看

 

Dim ip as New Importer
ip
.SourcePath = "c:\\Data\\销售管理.xls" \'指定数据文件
ip
.SourceTableName = "订单$" \'指定要导入的表
ip
.NewTableName ="订单" \'导入后的表名
ip.Format = "Excel"
\'指定导入格式

ip
.Import()


--  作者:sloyy
--  发布时间:2016/9/11 23:00:00
--  
最好的方法:
1 数据库列名用单表头,不要包含 "-"
2 复杂的多层表头用 "标题" 实现
3 导入的excel加上表头(和数据库列名一致)


--  作者:有点蓝
--  发布时间:2016/9/12 8:44:00
--  
或者用代码导入http://www.foxtable.com/webhelp/scr/2334.htm
--  作者:沦落深蓝
--  发布时间:2016/9/12 10:07:00
--  [求助]

表A中最后三列为逻辑列,导入时如何使excel和表A数据类型统一,报表输出时都是输出true或false,往回导入却不行怎么办???


--  作者:有点蓝
--  发布时间:2016/9/12 10:12:00
--  
测试没有问题,直接导入即可,上传Excel文件看看
--  作者:沦落深蓝
--  发布时间:2016/9/12 11:44:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.table

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:机械管理使用情况表.xls

窗口afterload里代码导入该excel表,(路径测试得修改),想保持表的原格式将数据导入,出现逻辑列问题,同时是否有方法能使导入表把TABLE表的空行数据给填充上,避免导入时前方出现空的行

 

 

 

 

同时请教老师,我制作这个窗口的目的是将不同名称的机械打开窗口时能导入指定名称的excel表数据,修改完毕后又保存到excel表中,原表数据clear,窗口中的表仅作为一个格式载体使用,~~~该设计是否可行

[此贴子已经被作者于2016/9/12 12:52:37编辑过]

--  作者:有点蓝
--  发布时间:2016/9/12 14:38:00
--  
Dim  Book As New XLS.Book("F:\\H\\问题测试\\机械管理使用情况表.xls")
Dim  Sheet As XLS.Sheet = Book.Sheets(0)
Tables("机械使用情况表").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As  String = {"机械使用情况1","机械使用情况2","机械使用情况3","机械使用情况4","机械使用情况5","机械充电情况1","机械充电情况2","机械充电情况3","机械充电情况4","机械充电情况5","保养维护情况1","保养维护情况2","保养维护情况3"}
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim r As  Row = Tables("机械使用情况表").AddNew()
    For  m As  Integer = 0 To nms.Length - 1
        If Tables("机械使用情况表").Cols(nms(m)).IsBoolean Then
            r(nms(m)) = IIF(Sheet(n,m).Value=1,true ,False)
        Else
            r(nms(m)) = Sheet(n,m).Value
        End If
    Next
Next
Tables("机械使用情况表").ResumeRedraw()

或者直接导入

Tables("机械使用情况表").StopRedraw()
Dim mg As New Merger
mg.SourcePath = "F:\\H\\问题测试\\机械管理使用情况表.xls"
mg.Format = "excel" \'指定格式
mg.SourceTableName = "Sheet1$"
mg.DataTableName = "机械使用情况表"
mg.Merge()
Tables("机械使用情况表").ResumeRedraw()

--  作者:沦落深蓝
--  发布时间:2016/9/12 19:30:00
--  

非常感谢,作为菜鸟对程序中的变化还缺乏了解,请老师见谅,我会继续学习的