以文本方式查看主题

-  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=45200)

--  作者:jiskin
--  发布时间:2014/1/18 8:56:00
--  [求助]导出excel

Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg.Filter= "Excel文件(*.xlsx;*.xls)|*.xlsx;*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then
    For Each t As Table In Tables
            Tables(t.name).SaveExcel(dlg.FileName, t.name)
    Next
    MessageBox.Show("导出完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

 

想导出所有的表 保存为excel个多个sheet 需要如何再改动下,谢谢!

[此贴子已经被作者于2014-1-18 8:56:35编辑过]

--  作者:Bin
--  发布时间:2014/1/18 9:02:00
--  
那要使用代码导出的方式才可以做到.


--  作者:jiskin
--  发布时间:2014/1/18 9:58:00
--  
以下是引用Bin在2014-1-18 9:02:00的发言:
那要使用代码导出的方式才可以做到.

 

BIN 大哥 能不能帮忙改改 首先是 代码还有点错误 只导出了一个表,另外希望 能用SaveFileDialog保存到用户自己选择的路径呢?

 

\'Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
\'dlg.Filter= "Excel文件(*.xlsx;*.xls)|*.xlsx;*.xls" \'设置筛选器
\'If dlg.ShowDialog = DialogResult.Ok Then
For Each t As Table In Tables
    If t.Name = "Awards" Then
        Continue For
    Else
        Dim dt As Table = Tables(t.name)
        Dim Book As New XLS.Book \'定义一个Excel工作簿
        Book.Sheets.Add(t.name)
        Dim Sheet As XLS.Sheet = Book.Sheets(t.name)
        For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
            For c As Integer = 0 To dt.Cols.Count -1
                Sheet(r,c).Value = dt.rows(r)(c)
            Next
        Next
        Book.Save("c:\\reports\\test.xls")
    End If
Next

Dim Proc As New Process
Proc.File = "c:\\reports\\test.xls"
Proc.Start()

\'End If
\'Next
\'MessageBox.Show("导出完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
\'End If

[此贴子已经被作者于2014-1-18 9:59:07编辑过]

--  作者:Bin
--  发布时间:2014/1/18 10:11:00
--  
Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg.Filter= "Excel文件(*.xlsx;*.xls)|*.xlsx;*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then
    Dim Book As New XLS.Book \'定义一个Excel工作簿
    Book.Sheets.RemoveAt(0)
    For Each dt As Table In Tables
        Dim Sheet As XLS.Sheet = Book.Sheets.Add(dt.Name) \'引用工作簿的第一个工作表
        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)
            Next
        Next
    Next
    MessageBox.Show("导出完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()
End If

--  作者:9602084
--  发布时间:2014/1/18 13:28:00
--  
Dim str As String str=format(Date.now(),"yyyyMMddHHmmss") 
For Each dt As DataTable In DataTables 
 Dim ex As New Exporter 
 ex.SourceTableName = dt.name 
 ex.FilePath = projectpath & "\\数据备份\\" & str & ".xls" \'指定目标文件 
 ex.Format = "excel" \'导出格式为Excel 
 ex.Filter ="" 
 ex.Export() 
Next
[此贴子已经被作者于2014-1-18 13:28:27编辑过]