以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  DataTable如何导到EXCEL?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51316)

--  作者:nothing
--  发布时间:2014/5/24 8:38:00
--  DataTable如何导到EXCEL?
Dim cmd As new SQLCommand
    Dim dt As DataTable
    cmd.C
    cmd.CommandText = "Select * from 表A"
    dt = cmd.ExecuteReader
    Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
    dlg.Filter= "Excel文件|*.xls" \'设置筛选器
    If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
        Tables(dt.name).SaveExcel(dlg.FileName, "表A")  \'保存文件
    End If

请问如何导出dt到EXCEL

--  作者:Bin
--  发布时间:2014/5/24 8:45:00
--  
用这个办法吧http://www.foxtable.com/help/topics/1148.htm
--  作者:nothing
--  发布时间:2014/5/24 8:57:00
--  
例子是用Table的,我改成DataTable不对
--  作者:nothing
--  发布时间:2014/5/24 8:59:00
--  
dt = cmd.ExecuteReader


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.dataCols.Count -1 \'添加列标题
        Sheet(0, c).Value = dt.dataCols(c).Name
    Next
    For r As Integer = 0 To dt.dataRows.Count - 1 \'填入数据
        For c As Integer = 0 To dt.dataCols.Count -1
            Sheet(r +1, c).Value = dt.DataRows(r)(c)
        Next
        
    Next


--  作者:Bin
--  发布时间:2014/5/24 9:05:00
--  
用2楼的方法即可. 搞不定请上例子.
--  作者:nothing
--  发布时间:2014/5/24 10:28:00
--  
请帮忙看看
--  作者:nothing
--  发布时间:2014/5/24 10:28:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:datatable导出.table


--  作者:Bin
--  发布时间:2014/5/24 10:40:00
--  
Dim cmd As new SQLCommand
Dim dt As DataTable
cmd.CommandText = "Select *  from {表A}"
dt = cmd.ExecuteReader
\'MessageBox.Show(dt.DataRows.Count)
\'Return

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.dataCols.Count -1 \'添加列标题
    Sheet(0, c).Value = dt.dataCols(c).Name
Next
For r As Integer = 0 To dt.dataRows.Count - 1 \'填入数据
    For c As Integer = 0 To dt.dataCols.Count -1
        Sheet(r +1, c).Value = dt.DataRows(r)(dt.dataCols(c).name)
    Next
    \'If dt.rows(r)("折扣") >= 0.15 Then \'如果折扣大于等于0.15
    \'Sheet(r + 1,dt.Cols("折扣").Index).Style = Style \'设置折扣单元格的样式
    \'End If
Next
\'打开工作簿
Book.Save("c:\\dt.xls")
Dim Proc As New Process
Proc.File = "c:\\dt.xls"
Proc.Start()

--  作者:nothing
--  发布时间:2014/5/24 12:04:00
--  
谢谢