以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 合并电子表格数据疑问? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24404) |
||||||||
-- 作者:lpxjw_zyl -- 发布时间:2012/10/12 20:49:00 -- 合并电子表格数据疑问? Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) For i As Integer = 0 To Sheet.Cols.Count -1 If CurrentTable.Cols.Contains( Sheet(0,i).Value) = False Then MessageBox.Show("目标文件不含【" & Sheet(0,i).Value & "】列,请修改与目标文件一致!", "导入错误提示") Return End If Next
For r As Integer = 1 To Sheet.Rows.Count - 1 Dim Filter1 As String For c As Integer = 0 To Sheet.Cols.Count - 1 If c > 0 Then Filter1 = Filter1 & " And " End If If IsNumeric(sheet(r,c).Value) Then Filter1 = Filter1 & sheet(0,c).Value & " = " & sheet(r,c).Value Else Filter1 = Filter1 & sheet(0,c).Value & " = \'" & sheet(r,c).Value & "\'" End If Next If CurrentTable.DataTable.Find(Filter1) Is Nothing Then Dim dr As Row = CurrentTable.AddNew() For c As Integer = 0 To Sheet.Cols.Count - 1 dr(Sheet(0,c).Value) = Sheet(r,c).Value Next End If Next End If
上述代码为能正确执行合并电子表格数据
|
||||||||
-- 作者:布莱克朱 -- 发布时间:2012/10/12 21:15:00 -- 你这个为什么要筛选呀? |
||||||||
-- 作者:lpxjw_zyl -- 发布时间:2012/10/12 21:31:00 -- Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog If c > 0 Then |
||||||||
-- 作者:lpxjw_zyl -- 发布时间:2012/10/12 21:37:00 -- Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) For i As Integer = 0 To Sheet.Cols.Count -1 If CurrentTable.Cols.Contains( Sheet(0,i).Value) = False Then MessageBox.Show("目标文件不含【" & Sheet(0,i).Value & "】列,请修改与目标文件一致!", "导入错误提示") Return End If Next For r As Integer = 1 To Sheet.Rows.Count - 1 Dim Filter1 As String = "" For c As Integer = 0 To Sheet.Cols.Count - 1 If c > 0 Then Filter1 = Filter1 & " And " End If If sheet(r,c).Value <> "" AndAlso CurrentTable.DataTable.DataCols(sheet(0,c).Value).IsNumeric Then Filter1 = Filter1 & sheet(0,c).Value & " = " & sheet(r,c).Value ElseIf sheet(r,c).Value = "" Then Filter1 = Filter1 & sheet(0,c).Value & " is null " Else Filter1 = Filter1 & sheet(0,c).Value & " = \'" & sheet(r,c).Value & "\'" End If Next If CurrentTable.DataTable.Find(Filter1) Is Nothing Then Dim dr As Row = CurrentTable.AddNew() For c As Integer = 0 To Sheet.Cols.Count - 1 dr(Sheet(0,c).Value) = Sheet(r,c).Value Next End If Next End If |
||||||||
-- 作者:lpxjw_zyl -- 发布时间:2012/10/12 21:39:00 -- 问题已解决
|