以文本方式查看主题

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

--  作者:CHSTONE
--  发布时间:2020/2/17 17:52:00
--  [求助] 用代码如何导出到EXCEL表?
各位大神:

下面的代码,只是保存了一个表,如果有多个表,岂不是要保存多次?

For Each dt As DataTable In DataTables
    DataTables(dt.name).save(True)
    Dim ex As New Exporter
    ex.SourceTableName = dt.name \'指定导出表
    ex.FilePath = "e:\\car\\CAR0208.xls" \'指定目标文件
    If  FileSys.FileExists( "e:\\car\\CAR0208.xls" ) = True
        FileSys.DeleteFile( "e:\\car\\CAR0208.xls" )
    End If
    ex.Format = "Excel" \'导出格式为Excel
    ex.Export()
Next

如果一个项目里面有多个表DATATABLE,想将所有表(并且保持原表的格式及数据还有多层表头等)在退出项目之前导出到一个EXCEL文件里,代码该如何写啊?



--  作者:CHSTONE
--  发布时间:2020/2/17 19:17:00
--  
当然是EXCEL 2007之后的版本了.


--  作者:CHSTONE
--  发布时间:2020/2/17 20:06:00
--  
各位大神:

如果有多个表DATATABLE,导出到一个EXCEL文件,以下代码可以实现,经验证,无问题.  但是如果想保持表DATATABLE的所有格式及数据还有多层表头等),不知道该如何弄,请指教 ?

Dim fl As String = "e:\\car\\CAR0208.xls"       \'定义存放文件名包括完整路径的变量
DataTables.Save                                          \'所有表存盘
If  FileSys.FileExists(fl)                                 \'判断文件是否存在
    FileSys.DeleteFile(fl)                               \'如果存在则删除
End If
For Each dt As DataTable In DataTables     \'遍历所有 DataTable表
    Dim ex As New Exporter
    ex.SourceTableName = dt.name           \'指定导出表,因为是遍历,所以每个表都导出
    ex.FilePath = fl \'指定目标文件                 \'所有的DATATABLE表都导出取此EXCEL文件
    ex.Format = "Excel"                            \'导出格式为Excel   \'定义格式
    ex.Export()                                         \'导出
Next


--  作者:有点蓝
--  发布时间:2020/2/17 20:16:00
--  
需要使用SaveExcel导出:http://www.foxtable.com/webhelp/topics/0559.htm
--  作者:CHSTONE
--  发布时间:2020/2/17 21:08:00
--  
我试过以,以下代码不行,老师能不能帮看看?


Dim flname As String = "E:\\记价表\\记价表.XLS"
If FileSys.FileExists(flname) Then
FileSys.DeleteFile(flname)
End If

For Each tb As Table In Tables
Dim flg As New SaveExcelFlags
flg.VisibleOnly = False
flg.RowNumber = True
flg.CellStyle = True
Tables(tb.name).SaveExcel(flname,tb.name,flg)
Next

--  作者:有点蓝
--  发布时间:2020/2/17 21:21:00
--  
什么东西不行?

Dim flname As String = "D:\\问题\\记价表.XLS"
If FileSys.FileExists(flname) Then
    FileSys.DeleteFile(flname)
End If

Dim flg As New SaveExcelFlags
flg.VisibleOnly = False
flg.RowNumber = True
flg.CellStyle = True
For Each tb As Table In Tables
    tb.SaveExcel(flname,tb.name,flg)
Next