以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  一次性多表导出  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=170711)

--  作者:HANZHIGANG
--  发布时间:2021/8/4 16:09:00
--  一次性多表导出
问题如图
图片点击可在新窗口打开查看此主题相关图片如下:导出.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间: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
--  发布时间:2021/8/4 16:44:00
--  
将上述代码中的cols改为DataCols后,出现错误提示,如图
图片点击可在新窗口打开查看此主题相关图片如下:错误提示.png
图片点击可在新窗口打开查看

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

--  作者:HANZHIGANG
--  发布时间: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

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

--  作者:有点蓝
--  发布时间:2021/8/5 11:39:00
--  
什么错误提示?

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