Foxtable(狐表)用户栏目专家坐堂 → 关于合并


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

主题:关于合并

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/15 22:02:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/15 23:27:00 [显示全部帖子]

没有这种代码

 

t.DataSource = Book.Sheets(Index)

 

照抄2楼的帖子,或者参考

 

下载信息  [文件大小:312.0 KB  下载次数:4]
图片点击可在新窗口打开查看点击浏览该文件:excel作为数据源_合并.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/16 9:17:00 [显示全部帖子]

照抄2楼、4楼实例。和你要做的有什么差距?上传具体项目测试说明。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/16 16:20:00 [显示全部帖子]

1、

 

Dim t As Table = e.Form.controls("table1").Table
Dim ls As object = t.GetCheckedRows
If ls.count = 0 Then ls = t.Rows
Dim dt As DataTable = DataTables("表A")
For Each r As Row In ls
    Dim dr As DataRow = dt.find("身份证号='" & r("身份证号") & "'")
    If dr Is Nothing Then
        Dim d As Double
        If Double.TryParse(r("年龄"),d) = False Then
            r.DataRow.SetError("年龄", "不是数字")
        Else
            dr = dt.AddNew()
            For Each dc As Col In t.Cols
                If dt.DataCols.Contains(dc.name) Then
                    dr(dc.Name) = r(dc.name)
                End If
            Next
        End If
    End If
Next
msgbox("合并完成")

 

2、动态添加一列,如果出错的,标记一下,最后你可以根据标记列筛选出数据

 

http://www.foxtable.com/webhelp/scr/1428.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/16 17:08:00 [显示全部帖子]

        If Double.TryParse(r("年龄"),d) = False Then
            r.DataRow.SetError("年龄", "不是数字")
        ElseIf r("性别") <> "男" andalso r("性别") <> "女" Then

            r.DataRow.SetError("性别", "有问题")

        Else
            dr = dt.AddNew()
            For Each dc As Col In t.Cols
                If dt.DataCols.Contains(dc.name) Then
                    dr(dc.Name) = r(dc.name)
                End If
            Next
        End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/16 20:26:00 [显示全部帖子]

以下是引用susu312在2018/8/16 18:09:00的发言:

老师,对应上面的验证:

1、错误行在table1中会有error提示,但是导出后就没了,如何给错误单位格标红,用户导出后,也可以看到错误的位置?

 

 

你这个就麻烦了 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=119223&skin=0

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/16 22:25:00 [显示全部帖子]

Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx" '设置筛选器
Dim flg As New SaveExcelFlags
flg.CellStyle = True
Dim dt As Table = e.Form.controls("table1").Table
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim Book As New XLS.Book '定义一个Excel工作簿
    Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
    Dim Style As Xls.Style = Book.NewStyle '新建一个样式
    Style.BackColor = Color.Red '样式的背景颜色设为红色
    For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
        Sheet(0, c).Value = dt.Cols(c).Name
    Next
    For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
        For c As Integer = 0 To dt.Cols.Count -1
            Sheet(r +1, c).Value = dt.rows(r)(c)
            If dt.rows(r).DataRow.GetError(dt.Cols(c).name) > "" Then
                Sheet(r + 1,c).Style = Style '设置折扣单元格的样式
            End If
        Next
    Next
    '打开工作簿
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()
End If

 

http://www.foxtable.com/webhelp/scr/1148.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/16 23:29:00 [显示全部帖子]

类型转换参考

 

http://www.foxtable.com/webhelp/scr/0324.htm

 

判断是否为空 If r("某列") = nothing then

 

If r("某列") <> nothing then

 

判断字符数量,参考 If cstr(r("某列")).length = 11 then

 

你尽量一项一项的判断吧,你现在还没到简化代码的程度。先做最基础的。


 回到顶部