Foxtable(狐表)用户栏目专家坐堂 → EXCEL报表行高自动调节的问题


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

主题:EXCEL报表行高自动调节的问题

帅哥哟,离线,有人找我吗?
有点甜
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/24 18:02:00 [只看该作者]

以下是引用audience68在2014-11-24 17:59:00的发言:
再次请教各位高手,我的备注内容较多,生成EXCEL报表时,内容突破了EXCEL规定的行高高限409,不知该如何处理,才能将全部内容显示出来?

 

这个就木有办法了。在excel里面,可以通过合并单元格增加n个409的高度。

 

你可以在设计报表的时候,多加几行,过后,用vba合并所有的单元格才行


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


加好友 发短信
等级:小狐 帖子:319 积分:2494 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/11/24 19:01:00 [只看该作者]

甜版,我将两行合并后,设置合并后的行高,还是只能409,不能超过409,所以通过合并是无法解决的

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/24 19:06:00 [只看该作者]

以下是引用audience68在2014-11-24 19:01:00的发言:
甜版,我将两行合并后,设置合并后的行高,还是只能409,不能超过409,所以通过合并是无法解决的

 

你是在excel那里设置么?合并以后,肯定是可以超过409的


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


加好友 发短信
等级:小狐 帖子:319 积分:2494 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/11/24 20:29:00 [只看该作者]

甜版,我做了一个变通,把WORD报表和EXCEL报表做了一个结合,在生成报表的按钮中把两种报表的代码都写进去,这样就同时生成两个报表,我觉得基本解决了内容太多,EXCEL单元格限制的问题,但是我想把这两个文件同时生成在一个PDF文件中,不知是否可行,望指教或帮我改一下代码。我现在的代码如下:

Dim tm1 As String  = ProjectPath & "Attachments\监造周报1.docx" '指定模板文件

Dim fl1 As String = ProjectPath & "Reports\监造周报1.docx" '指定目标文件

Dim fl2 As String = ProjectPath & "Reports\监造周报1.pdf" '指定目标PDF文件

Dim wrt As New WordReport(Tables("监造周报"),tm1,fl1) '定义一个WordReport

wrt.Build() '逐行生成报表

wrt.SaveToPDF(fl2) '保存为PDF文件

wrt.Quit() '退出

Dim Proc1 As New Process '打开PDF文件

Proc1.File = fl2

Proc1.Start()

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\监造周报.xls")

Dim fl As String = ProjectPath & "Reports\监造周报.xls"

Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

'Sheet.Locked = True '禁止编辑

With Sheet.PrintSetting

    '页眉左边为日期,中间为时间,右边为表名

    .Header = "&L&D &C&T &R&F"

    '在页脚右边打印页号和总页数

    .Footer = "&R第&P页,总&N页"

End With

Book.Build() '生成细节区

Book.Save(fl) '保存工作簿

 

Dim App As New MSExcel.Application

try

    App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示

    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)

    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)

    Dim sr As Integer = 1

    Dim prev As String = ws.Cells(1,1).Text

    For r As Integer = 2 To Ws.UsedRange.Rows.count

        If ws.Cells(r, 1).Text <> prev AndAlso ws.Cells(r, 1).Text <> Nothing Then

            Dim Rg As MSExcel.Range = ws.Range("A" & sr & ":A" & r-1)

            Rg.Merge

            sr = r

            prev = ws.Cells(r, 1).Text

        End If

    Next

    Wb.Save

    App.Visible = True

   

catch ex As exception

    msgbox(ex.message)

    'app.quit

End try

app.quit

 

 

Dim flt1,flt2 As String

flt1 = ProjectPath & "Reports\监造周报.xls"

flt2 = ProjectPath & "Reports\监造周报.pdf"

Dim App1 As New MSExcel.Application

Dim Wb1 As MSExcel.WorkBook = App1.WorkBooks.Open(flt1)

wb1.ExportAsFixedFormat(MSExcel.XlFixedFormatType.xlTypePDF, flt2)

App1.Quit

Dim Proc As New Process '打开工作簿

Proc.File = flt2

Proc.Start()


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/24 20:40:00 [只看该作者]

 不可行。不能合并。

 

 要么用专业报表来做,最后生成pdf;要么用excel来做,合并多行单元格扩展高度


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


加好友 发短信
等级:小狐 帖子:319 积分:2494 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/11/24 21:35:00 [只看该作者]

甜版,我想干脆全部用WORD模板来做报表,但是不知道用WORD做能否像EXCEL模板那样根据不同数量的行而自动调整报表的行数?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/24 21:57:00 [只看该作者]

 回复16楼,word是不能做列表的,word只能做套打,也就是一行生成一次word报表。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/24 21:59:00 [只看该作者]

 其实做成专业报表也不难,直接套用代码即可。

 

 如果想用excel做,你就做个例子上来吧,如果你的报表不复杂,用vba处理起来也不复杂,一般用10行左右就足够高度了吧。


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


加好友 发短信
等级:小狐 帖子:319 积分:2494 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/11/25 9:07:00 [只看该作者]

甜版,谢谢,
用EXCEL做,对于合并的单元格,无法根据备注的内容自动调整单元格的高度,我这里备注的内容有的很多(2个409都不够),有的又很少(只要一两行就可以了),这样单元格高度设置高了会产生大段的空白,有时可能还不购,不如WORD报表,自动根据内容可以自动调整甚至换行,很方便,所以我目前暂时采用我的方案,把这个表分成两段,分别用WORD和EXCEL生成两段报表的PDF文本,然后用PDF软件把两个文本合并在一起,这样反而方便。
关于是否能用专业报表,我还未试,但我感觉可能也存在EXCEL的问题,无法自动适应备注内容多少自动调整行高的问题。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/25 9:15:00 [只看该作者]

 专业报表和word一样,确定了列宽后,能自动调整行高。

 回到顶部
总数 22 上一页 1 2 3 下一页