Foxtable(狐表)用户栏目专家坐堂 → 导出EXCEL出现


  共有9363人关注过本帖树形打印复制链接

主题:导出EXCEL出现

帅哥哟,离线,有人找我吗?
liuliu24
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:20 积分:238 威望:0 精华:0 注册:2012/12/9 4:43:00
导出EXCEL出现  发帖心情 Post By:2012/12/10 16:22:00 [只看该作者]

代码:
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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/10 16:34:00 [只看该作者]

 应该是你的列名写错了吧?检查一下。

 回到顶部
帅哥哟,离线,有人找我吗?
liuliu24
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:20 积分:238 威望:0 精华:0 注册:2012/12/9 4:43:00
  发帖心情 Post By:2012/12/10 16:38:00 [只看该作者]

不是列名的问题,试了

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/10 16:44:00 [只看该作者]

 明显是列名的问题,楼主需要认真仔细检查一遍。

 回到顶部
帅哥哟,离线,有人找我吗?
liuliu24
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:20 积分:238 威望:0 精华:0 注册:2012/12/9 4:43:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/10 16:46:00 [只看该作者]

 表属性->其他->查看表结构,对一下列名。

 然后再填写。

 回到顶部
帅哥哟,离线,有人找我吗?
liuliu24
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:20 积分:238 威望:0 精华:0 注册:2012/12/9 4:43:00
  发帖心情 Post By:2012/12/10 16:54:00 [只看该作者]

测出来了,表达式列导会报错,有什么办法

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/10 17:10:00 [只看该作者]

 又或者,使用编码导出。

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

 回到顶部