以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 依据订单表生成的交叉表列标题有问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1058) |
-- 作者:唐尸三摆手 -- 发布时间:2008/11/4 21:26:00 -- 依据订单表生成的交叉表列标题有问题 依据订单表,按照行标题为产品,列标题为日期,生成统计订单数量的交叉表。 此时,列标题为“2008-10-31”、“2008-11-01”格式,但是将此交叉表结果导出到access及execl文件,列标题均 变成了r**1、r**2这种样式,请问能否将FOXTABLE所见结果原样导出? |
-- 作者:狐狸爸爸 -- 发布时间:2008/11/4 21:43:00 -- 没有办法,因为2008-10-31不是一个有效的列名 用excel报表输出统计结果吧。 |
-- 作者:唐尸三摆手 -- 发布时间:2008/11/4 21:44:00 -- excel报表输出统计结果,可是列名称不是固定的呀 |
-- 作者:狐狸爸爸 -- 发布时间:2008/11/4 21:46:00 -- 可以用代码修改模板,然后再build啊 |
-- 作者:唐尸三摆手 -- 发布时间:2008/11/4 21:49:00 -- 能否提供简单实例 |
-- 作者:狐狸爸爸 -- 发布时间:2008/11/4 22:23:00 -- 不用模板,直接用代码生成即可。 下面的代码完全通用,只需改一下表名: Dim dt As Table = Tables("表名") Dim Book As New XLS.Book \'定义一个Excel工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 For c As Integer = 0 To dt.Cols.Count -1 \'添加列标题 Sheet(0, c).Value = dt.Cols(c).Caption 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 \'打开工作簿 Book.Save("c:\\reports\\test.xls") Dim Proc As New Process Proc.File = "c:\\reports\\test.xls" Proc.Start() |
-- 作者:唐尸三摆手 -- 发布时间:2008/11/5 12:11:00 -- 成功,又学了一招,谢谢他爹啦 [此贴子已经被作者于2008-11-5 12:10:49编辑过]
|