Foxtable(狐表)用户栏目专家坐堂 → [求助]Excel报表容量问题


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

主题:[求助]Excel报表容量问题

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/16 11:49:00 [显示全部帖子]

用Excel 2007看看


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/16 15:25:00 [显示全部帖子]

呵呵,你根据错误提示,应该能够找出这句代码的问题的。

这次我不说,你自己找。

 

图片点击可在新窗口打开查看


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/16 15:42:00 [显示全部帖子]

以下是引用易服在2010-12-16 15:34:00的发言:

加上也不行的

 

Tables("xxx").Select(i, 0, i + 1369, tables("xxx").cols.count -1)

 


 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/16 16:18:00 [显示全部帖子]

For i As Integer = 0 To Tables("申请表").Rows.Count -1 Step 1370
    With Tables("申请表")
        .Select(i, 0, math.min(i + 1369,.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.Verb = "Print" '指定动作
    Proc.Start()
Next

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/16 21:55:00 [显示全部帖子]

因为楼主说一次超过1370行就出错啊,所以一次打印1370行

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/17 9:56:00 [显示全部帖子]

加上一行,这样关闭本次生成的报表,才会生成下一个,不会带来冲突:

 

If Forms("选项").Controls("ComboBox1").Value >"" AndAlso Forms("选项").Controls("ComboBox2").Value >"" Then
    For i As Integer = 0 To Tables("申请表").Rows.Count -1 Step 1370
        With Tables("申请表")
            .Select(i, 0, math.min(i + 1369,.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.WaitForClose = True
        Proc.Start()
    Next
END IF


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/17 10:26:00 [显示全部帖子]

改名还不容易啊:

 

If Forms("选项").Controls("ComboBox1").Value >"" AndAlso Forms("选项").Controls("ComboBox2").Value >"" Then
    For i As Integer = 0 To Tables("申请表").Rows.Count -1 Step 1370
        With Tables("申请表")
            .Select(i, 0, math.min(i + 1369,.rows.count -1), .cols.count -1)
        End With
        Dim Book As New XLS.Book(ProjectPath & "Attachments\登记表.xls") '打开模板
        Book.Build() '生成细节区

        Dim fl As String ="d:\My Documents\Reports\登记表" & i & ".xls"
        Book.Save(fl) '保存工作簿
        Dim Proc As New Process '打开工作簿
        Proc.File = fl

        Proc.Start()
    Next
END IF


 回到顶部