以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于合并数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107359) |
||||
-- 作者:stevenfm -- 发布时间:2017/9/26 16:53:00 -- [求助]关于合并数据 Dim
Book As New
XLS.Book("c:\\test\\订单.xls") 问题: 如果合并的表我只需要其中几例,怎么操作? [此贴子已经被作者于2017/9/26 16:54:10编辑过]
|
||||
-- 作者:blsu33 -- 发布时间:2017/9/26 17:16:00 -- Dim nms() As String = {"编号","产品","客户","雇员","单价","折扣","数量","日期"} 这句改成你要的那几列名
|
||||
-- 作者:有点甜 -- 发布时间:2017/9/26 17:27:00 -- 参考代码
Dim dlg As New OpenFileDialog |
||||
-- 作者:stevenfm -- 发布时间:2017/9/27 9:08:00 -- 产品,客户,日期 |
||||
-- 作者:有点甜 -- 发布时间:2017/9/27 10:18:00 -- 看懂3楼代码,如果不会做,上传具体实例说明你的问题。 |
||||
-- 作者:stevenfm -- 发布时间:2017/11/10 17:02:00 -- Dim dlg As New OpenFileDialog dlg.Filter = "Excel文件|*.xls;*.xlsx" If dlg.ShowDialog =DialogResult.OK Then Dim t As Table = Tables("海报印刷投递表") Dim cs As String() = {"门店", "订单号", "印刷量","投递量"} t.StopRedraw() Dim Book As New XLS.Book(dlg.FileName) \'定义一个Excel工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 For n As Integer = 2 To Sheet.Rows.Count -1 Dim r As DataRow = t.DataTable.Find("门店 = \'" & sheet(n, 0).text & "\'") If r Is Nothing Then r = t.DataTable.AddNew() For i As Integer = 3 To sheet.Cols.Count -1 Dim cname As String = sheet(0, i).text If array.indexof(cs,cname) >= 0 Then r(cname) = sheet(n, i).Text End If Next Next t.ResumeRedraw() End If
还是不行,能不能帮我看看。 我只想导入“测试”文件表里面D、E、H、I四例到Foxtable中的对应例中。其他例不要。 |
||||
-- 作者:有点甜 -- 发布时间:2017/11/10 17:37:00 -- Dim dlg As New OpenFileDialog dlg.Filter = "Excel文件|*.xls;*.xlsx" If dlg.ShowDialog =DialogResult.OK Then Dim t As Table = Tables("海报印刷投递表") Dim cs As String() = {"门店", "订单号", "印刷量","投递量"} t.StopRedraw() Dim Book As New XLS.Book(dlg.FileName) \'定义一个Excel工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 For n As Integer = 2 To Sheet.Rows.Count -1 Dim r As DataRow = t.DataTable.Find("门店 = \'" & sheet(n, 3).text & "\'") If r Is Nothing Then r = t.DataTable.AddNew() For i As Integer = 0 To sheet.Cols.count -1 Dim cname As String = sheet(1, i).text If array.indexof(cs,cname) >= 0 Then r(cname) = sheet(n, i).Text End If Next Next t.ResumeRedraw() End If |
||||
-- 作者:stevenfm -- 发布时间:2017/11/15 13:14:00 -- 解决了,有几个问题要问一下。 1.这个是不是列名必须要和数据源的列名相同才起作用呢?我试了一下。好像当前表的列名和数据源列名不同,他进去就是空的。 2. If array.indexof(cs,cname) >= 0 Then r(cname) = sheet(n, i).Text End If array.indexof(这个是什么作用,写入指定单元格位置?) |
||||
-- 作者:有点甜 -- 发布时间:2017/11/15 14:31:00 -- Dim dlg As New OpenFileDialog dlg.Filter = "Excel文件|*.xls;*.xlsx" If dlg.ShowDialog =DialogResult.OK Then Dim t As Table = Tables("海报印刷投递表") Dim cs As String() = {"门店", "订单号", "印刷量","投递量"} Dim cs2 As String() = {3,4,7,8} t.StopRedraw() Dim Book As New XLS.Book(dlg.FileName) \'定义一个Excel工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 For n As Integer = 2 To Sheet.Rows.Count -1 Dim r As DataRow = t.DataTable.Find("门店 = \'" & sheet(n, 3).text & "\'") If r Is Nothing Then r = t.DataTable.AddNew() For i As Integer = 0 To cs2.length-1 r(cs(i)) = sheet(n, cs2(i)).Text Next Next t.ResumeRedraw() End If |