以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何用代码控制日期列输出的格式 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51728) |
-- 作者:瞩望星空 -- 发布时间:2014/6/2 8:56:00 -- [求助]如何用代码控制日期列输出的格式 本人想参照帮助(http://www.foxtable.com/help/topics/1148.htm)最后部分,关于用代码控制日期列的命令,
来控制使用模板文件的日期列格式,代码如下,但没有效果,请帮助修改。
Dim dt As Table = Tables("交货记录")
Dim Book As New XLS.Book(ProjectPath & "Attachments\\交货记录.xls") \'使用模板导出
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
Dim dlg As new SaveFileDialog
dlg.Filter="excel文件|*.xls"
If dlg.ShowDialog = DialogResult.OK Then
Dim fl As String = dlg.FileName
\'以下三行参照帮助中控制日期列导出
代码 Dim Style As XLS.Style = Book.NewStyle \'定义新样式
Style.Format = "yyyy-MM-dd"
Sheet.Cols(dt.Cols("制单日期").Index).Style = Style
\'Sheet.Cols(dt.Cols("制单日期").Index+1).Style = Style \'改成这样也无效
Book.Build() \'生成细节区
Book.Save(fl) \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = fl
Proc.Start()
Else
Return \'Nothing
End If
[此贴子已经被作者于2014-6-2 23:00:17编辑过]
|
-- 作者:sloyy -- 发布时间:2014/6/2 11:32:00 -- 你想得太复杂了,日期控制代码根本不需要,只要把模板的日期单元格式设置为需要的日期格式就可以了. |
-- 作者:瞩望星空 -- 发布时间:2014/6/2 11:42:00 -- 在模板中设置日期格式可以达到这个效果。 但是,帮助中也提供了另一种处理方法,并且帮助中的例子是有效的。 只是我自己去应用就无效了,想学一下。
|
-- 作者:瞩望星空 -- 发布时间:2014/6/2 22:22:00 -- 自己顶一下 |
-- 作者:sloyy -- 发布时间:2014/6/2 23:31:00 -- 你用代码再怎么设置,只要你套用了模板,就以模板的格式为最后标准,所以..... |
-- 作者:瞩望星空 -- 发布时间:2014/6/3 8:48:00 -- 我试过加代码不能控制使用模板输出XLS的日期列格式。 我是给这段帮助说明吸引过来的:
你如果细心的话,你会发现生成的Excel文件中,日期列内容全变成了数字。 Dim St2 As XLS.Style = Book.NewStyleSt2.Format = "yyyy-MM-dd" Sheet.Cols(dt.Cols("日期").Index).Style = st2
如果确实不行,狐表的这段帮助文档,应加一句“此方法不适合用于使用模板输出Excel文件”。 不知狐爸能否看到? |
-- 作者:有点甜 -- 发布时间:2014/6/3 9:03:00 -- 回复6楼,代码先后的问题。你应该在等报表build以后再设置excel的style的,保证有效。 |
-- 作者:瞩望星空 -- 发布时间:2014/6/3 9:50:00 -- 回复七楼,这三句代码(定义dt可以放在最前面)我已测试放在不同的位置,都无效。 一楼有例子,能不能帮我测试一下。
改成这样也无效: Book.Build() \'生成细节区 Book.Save(fl) \'保存工作簿 [此贴子已经被作者于2014-6-3 10:31:15编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/6/3 10:30:00 -- 需要这样改
|
-- 作者:瞩望星空 -- 发布时间:2014/6/3 10:40:00 -- 可以了,非常感谢! 最好把9楼的代码补充到帮助文档中。 |