以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  导出到EXCEL问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107452)

--  作者:13968559581
--  发布时间:2017/9/28 11:39:00
--  导出到EXCEL问题
请教:
    我有一个表,在SQL数据库中,我用sqlcommand取数过来,我想根据工号分别保存成一个EXCEL表格
提示报错,什么原因,谢谢
图片点击可在新窗口打开查看此主题相关图片如下:列0不属于表.png
图片点击可在新窗口打开查看

Dim cmd1 As new sqlcommand
Dim da As DataTable
Dim yg As String
cmd1.C
cmd1.CommandText="Select 工号,姓名 fr om pxmx"
da=cmd1.ExecuteReader
For Each yg In da.GetValues("工号")
    Dim b As new XLS.Book
    Dim s As XLS.Sheet=b.sheets(0)
    \'Dim Style As Xls.Style = b.NewStyle \'新建一个样式
    \'Style.BackColor = Color.Red \'样式的背景颜色设为红色
    For c As Integer=0 To da.DataCols.count-1
        s(0,c).value=da.DataCols(c).Name
       
    Next
    
    For r As Integer=0 To da.DataRows.count-1
        For c As Integer=0 To  da.DataCols.count-1
            MessageBox.show(c)
            s(r+1,c).value=da.dataRows(r)(c)
       MessageBox.show(2)
        Next
        
        b.Save("c:\\lzj\\" & da.dataRows(r)(0) & da.dataRows(r)(1) & ".xls")
    Next
Next

--  作者:有点甜
--  发布时间:2017/9/28 12:35:00
--  
For Each yg In da.GetValues("工号")
    Dim b As new XLS.Book
    Dim s As XLS.Sheet=b.sheets(0)
    \'Dim Style As Xls.Style = b.NewStyle \'新建一个样式
    \'Style.BackColor = Color.Red \'样式的背景颜色设为红色
    Dim cs As new List(of String)
   
    For Each dc As DataCol In da.DataCols
        cs.Add(dc.name)
    Next

   
    For c As Integer=0 To da.DataCols.count-1
        s(0,c).value=cs(c)
       
    Next
   
    For r As Integer=0 To da.DataRows.count-1
        For c As Integer=0 To  da.DataCols.count-1
            s(r+1,c).value=da.dataRows(r)(cs(c))
            MessageBox.show(2)
        Next
       
        b.Save("c:\\lzj\\" & da.dataRows(r)(0) & da.dataRows(r)(1) & ".xls")
    Next
Next

--  作者:13968559581
--  发布时间:2017/9/28 14:05:00
--  
你好,我现在是感觉这一句报错哦
 s(r+1,c).value=da.dataRows(r)(c)

--  作者:有点甜
--  发布时间:2017/9/28 14:22:00
--  

已经改成这样了

 

 s(r+1,c).value=da.dataRows(r)(cs(c))