以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  导出EXCEL出现  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=26626)

--  作者:liuliu24
--  发布时间:2012/12/10 16:22:00
--  导出EXCEL出现
代码:
Dim ex As New Exporter
ex.SourceTableName = "订单" \'指定导出表
ex.FilePath = "c:\\Data\\订单.xls" \'指定目标文件
ex.Format = "Excel" \'导出格式为Excel
ex.Fields = "订单编号,实取时间,数量,结算金额,订单状态,会员编号" \'指定导出字段

ex.Export() \'开始导出

错误码提示
.NET Framework 版本:2.0.50727.42
Foxtable 版本:2012.11.28.1
错误所在事件:
详细错误信息:
System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。
   在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   在 Foxtable.Exporter.Export()

--  作者:lin_hailun
--  发布时间:2012/12/10 16:34:00
--  
 应该是你的列名写错了吧?检查一下。
--  作者:liuliu24
--  发布时间:2012/12/10 16:38:00
--  
不是列名的问题,试了
--  作者:lin_hailun
--  发布时间:2012/12/10 16:44:00
--  
 明显是列名的问题,楼主需要认真仔细检查一遍。
--  作者:liuliu24
--  发布时间:2012/12/10 16:45:00
--  
Dim ex As New Exporter
ex.SourceTableName = "订单" \'指定导出表
ex.FilePath = "c:\\Data\\订单.xls" \'指定目标文件
ex.Format = "Excel" \'导出格式为Excel
ex.Export() \'开始导出

如果不指定列,可以导出,指定就不行,列名没有错,这是为什么呢,在线等

--  作者:lin_hailun
--  发布时间:2012/12/10 16:46:00
--  
 表属性->其他->查看表结构,对一下列名。

 然后再填写。

--  作者:liuliu24
--  发布时间:2012/12/10 16:54:00
--  
测出来了,表达式列导会报错,有什么办法
--  作者:lin_hailun
--  发布时间:2012/12/10 17:04:00
--  
 嗯嗯,是的表达式列不能导出的。

 可以这样变通。

Dim colNames() As String = {"日期", "客户", "数量", "单价", "金额"}
Dim t As Table = Tables("订单")
Dim mark As New List(Of String)
For Each c As Col In t.Cols
    If Array.IndexOf(colNames, c.Name) = -1 Then
        c.Visible = False
        mark.Add(c.Name)
    Else
        c.Visible = True
    End If
Next

t.SaveExcel("d:\\test.xls", "xxx")

For Each c As String In mark
    t.Cols(c).Visible = True
Next

--  作者:lin_hailun
--  发布时间:2012/12/10 17:10:00
--  
 又或者,使用编码导出。

http://www.foxtable.com/help/topics/1148.htm