以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助]Excel报表容量问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8851)
|
-- 作者:易服
-- 发布时间:2010/12/16 11:33:00
-- [求助]Excel报表容量问题
有一Excel报表每一记录占一页,当记录数超过1370行时,报表不正常甚至导致主机报警死机。
不正常
此主题相关图片如下:2010-12-15 10-32-12.png
正常时预览
此主题相关图片如下:2010-12-15 10-58-19.png
有什么解决方法? With Tables("申请表") .Select(0 ,0, .Rows.Count - 1, .Cols.Count - 1) End With If Forms("选项").Controls("ComboBox1").Value >"" Andalso Forms("选项").Controls("ComboBox2").Value >"" Then Dim Book As New XLS.Book(ProjectPath & "Attachments\\登记表.xls") \'打开模板 Book.Build() \'生成细节区 Book.Save("d:\\My Documents\\Reports\\登记表.xls") \'保存工作簿 Dim Proc As New Process \'打开工作簿 Proc.File ="d:\\My Documents\\Reports\\登记表.xls" Proc.Start() End If
|
-- 作者:狐狸爸爸
-- 发布时间:2010/12/16 11:49:00
--
用Excel 2007看看
|
-- 作者:mr725
-- 发布时间:2010/12/16 13:57:00
--
可能要用循环来打印或预览吧···· 因为“Excel报表每一记录占一页”啊~~
|
-- 作者:易服
-- 发布时间:2010/12/16 14:20:00
--
以下是引用mr725在2010-12-16 13:57:00的发言: 可能要用循环来打印或预览吧···· 因为“Excel报表每一记录占一页”啊~~
怎么用循环来打印或预览?
我想个笨办法,先判断行数,不会写代码
If Forms("选项").Controls("ComboBox1").Value >"" AndAlso Forms("选项").Controls("ComboBox2").Value >"" Then If ("_Identify") < 1370 Then With Tables("申请表") .Select(0 ,0, .Rows.Count - 1, .Cols.Count - 1) End With Dim Book As New XLS.Book(ProjectPath & "Attachments\\核实表.xls") \'打开模板 Book.Build() \'生成细节区 Book.Save("d:\\My Documents\\Reports\\核实表.xls") \'保存工作簿 Dim Proc As New Process \'打开工作簿 Proc.File ="d:\\My Documents\\Reports\\核实表.xls" Proc.Start() End If Else MessageBox.Show("手工选定行数","提示") End If
|
-- 作者:狐狸爸爸
-- 发布时间:2010/12/16 14:37:00
--
For i as integer = 0 to tables("xxx").Rows.Count -1 Step 1370 Tables("xxx").Select(i, 0, i + 1369, cols.count -1) Dim Book As New XLS.Book(ProjectPath & "Attachments\\核实表.xls") \'打开模板 Book.Build() \'生成细节区 Book.Save("d:\\My Documents\\Reports\\核实表.xls") \'保存工作簿 Dim Proc As New Process \'打开工作簿 Proc.File ="d:\\My Documents\\Reports\\核实表.xls" Proc.Verb = "Print" \'指定动作 Proc.Start() Next
|
-- 作者:易服
-- 发布时间:2010/12/16 15:23:00
--
以下是引用狐狸爸爸在2010-12-16 14:37:00的发言:
此主题相关图片如下:2010-12-16 15-21-03.png
|
-- 作者:狐狸爸爸
-- 发布时间:2010/12/16 15:25:00
--
呵呵,你根据错误提示,应该能够找出这句代码的问题的。
这次我不说,你自己找。
|
-- 作者:mr725
-- 发布时间:2010/12/16 15:28:00
--
Tables("xxx").Select(i, 0, i + 1369, .cols.count -1) 红点没加上啊
[此贴子已经被作者于2010-12-16 15:40:00编辑过]
|
-- 作者:易服
-- 发布时间:2010/12/16 15:34:00
--
以下是引用mr725在2010-12-16 15:28:00的发言: Tables("xxx").Select(i, 0, i + 1369, .cols.count -1) 红点没加上啊
加上也不行的
|
-- 作者:mr725
-- 发布时间:2010/12/16 15:40:00
--
For i as integer = 0 to tables("xxx").Rows.Count -1 Step 1370 这个是要每隔1370行打印一行吗?
For i as integer = 0 to 3 先试一试这个吧。只打印四行的。。。
[此贴子已经被作者于2010-12-16 15:41:38编辑过]
|