Foxtable(狐表)用户栏目专家坐堂 → 一次性多表导出


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

主题:一次性多表导出

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
一次性多表导出  发帖心情 Post By:2021/8/4 16:09:00 [只看该作者]

问题如图
图片点击可在新窗口打开查看此主题相关图片如下:导出.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/4 16:29:00 [只看该作者]

比如

Dim dt As DataTable = DataTables("订单")
Dim Book As New XLS.Book '定义一个Excel工作簿
Book.Sheets.RemoveAt(0)
Dim Sheet As XLS.Sheet
For Each s As String In dt.GetValues("客户")
    Sheet  = Book.Sheets.Add(s) '新建一个sheet
    
    For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
        Sheet(0, c).Value = dt.Cols(c).Name
    Next
    Dim drs As List(Of  DataRow) = dt.Select("客户 = '" & s & "'")
    For r As Integer = 0 To drs.Count - 1
        For c As Integer = 0 To dt.Cols.Count -1
            Sheet(r +1, c).Value = drs(r)(c)
        Next
    Next
Next
[此贴子已经被作者于2021/8/4 16:29:30编辑过]

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
  发帖心情 Post By:2021/8/4 16:44:00 [只看该作者]

将上述代码中的cols改为DataCols后,出现错误提示,如图
图片点击可在新窗口打开查看此主题相关图片如下:错误提示.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/4 17:10:00 [只看该作者]

Sheet(r +1, c).Value = drs(r)(dt.dataCols(c).Name)
[此贴子已经被作者于2021/8/4 17:10:17编辑过]

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
  发帖心情 Post By:2021/8/5 11:26:00 [只看该作者]

Dim dt As DataTable = DataTables("订单")
Dim Book As New XLS.Book '定义一个Excel工作簿
Book.Sheets.RemoveAt(0)
Dim Sheet As XLS.Sheet
For Each s As String In dt.GetValues("客户")
    For Each m As String In dt.GetValues("产品","客户 = '" & s & "'")
        Sheet  = Book.Sheets.Add(s & m) '新建一个sheet
        
       For c As Integer = 0 To dt.DataCols.Count -1 '添加列标题
            Sheet(0, c).Value = dt.DataCols(c).Name
        Next
        Dim drs As List(Of  DataRow) = dt.Select("产品 = '" & m & "'")
        For r As Integer = 0 To drs.Count - 1
            For c As Integer = 0 To dt.DataCols.Count -1
                Sheet(r +1, c).Value = drs(r)(dt.dataCols(c).Name)
            Next
        Next
    Next
Next
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()
End If

老师,这次是想按客户下的每个产品分别导出,按以上代码试了一下,始终有错误提示,请老师指导,修改一下

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/5 11:39:00 [只看该作者]

什么错误提示?

Dim drs As List(Of  DataRow) = dt.Select("客户 = '" & s & "' and 产品 = '" & m & "'")

 回到顶部