以文本方式查看主题 - 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=72654) |
||||
-- 作者:wangyinming -- 发布时间:2015/8/4 9:46:00 -- [求助] EXCEL 模板导出问题 1. 6000条数据导出时,时间太长,约2~3分,求解决! 2.导出运行一段时间后,出现以下错误,见附件 |
||||
-- 作者:wangyinming -- 发布时间:2015/8/4 9:48:00 -- 导出代码:Dim pr As Integer = Tables("检查").Rows.Count Dim dlg As New SaveFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 e.Form.Controls("Label1").Text = "正在导出 ... ... ,请稍后..." Application.DoEvents() Dim Book As New XLS.Book(ProjectPath & "Attachments\\导出模版.xls") Dim fl As String = dlg.FileName Dim Sheet As XLS.Sheet = Book.Sheets(0) Sheet(0,0).Value = "<" & Tables("检查").Filter & ">" \'写入打印条件 Book.Build() \'生成细节区 Book.Save(fl) \'保存工作簿 e.Form.Controls("Label1").Text = "已经完成" If MessageBox.Show("成功导出数据"& pr &"条,是否打开数据?","确认",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) =DialogResult.OK Then Dim Proc As New Process Proc.File = fl Proc.Start() e.Form.Controls("Label1").Text = "" Else \'e.form().Close Syscmd.Table.ToggleSortAndFilter() e.Form.Controls("Label1").Text = "" End If End If 选择时段时出现,上述第2个问题
|
||||
-- 作者:大红袍 -- 发布时间:2015/8/4 10:00:00 -- 导出代码没什么问题,但这句,肯定不能在0,0的位置设置条件啊。
设置条件的位置,参考 http://www.foxtable.com/help/topics/0201.htm
Sheet(0,0).Value = "<" & Tables("检查").Filter & ">" |
||||
-- 作者:大红袍 -- 发布时间:2015/8/4 10:01:00 -- 导出,时间长的问题,做个例子看看,代码是没什么问题的。 |
||||
-- 作者:wangyinming -- 发布时间:2015/8/4 10:31:00 --
请大红袍老师看看 Sheet(0,0).Value = "<" & Tables("检查").Filter & ">" 改成 Sheet(2,77).Value = "<" & Tables("检查").Filter & ">" 也不可,不知哪里错了
[此贴子已经被作者于2015/8/4 10:31:44编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2015/8/4 10:47:00 -- 慢的问题没办法解决,因为这个excel报表的弊病。
如果想快,就用saveExcel或者Exporter http://www.foxtable.com/help/topics/0559.htm
[此贴子已经被作者于2015/8/4 10:47:13编辑过]
|
||||
-- 作者:wangyinming -- 发布时间:2015/8/4 11:05:00 -- 本来使用的是Exporter,后来为了将逻辑列中的True 替换成“*”,False 替换成“ ”。才使用EXCEL模板的。 有无它法,将逻辑列中的True 替换成“*”,False 替换成“ ”。
|
||||
-- 作者:大红袍 -- 发布时间:2015/8/4 11:09:00 -- 加表达式列,导出的时候,导出表达式列。
动态添加表达式列。
http://www.foxtable.com/help/topics/1428.htm
|
||||
-- 作者:wangyinming -- 发布时间:2015/8/4 11:16:00 -- 谢谢,大红袍老师! 我再学习一下动态表达式。 |
||||
-- 作者:大红袍 -- 发布时间:2015/8/4 11:17:00 -- 可以动态,但你的情况,直接添加固定的表达式列,是最好的选择。你把表达式列隐藏即可。 |