Foxtable(狐表)用户栏目专家坐堂 → 01.Excel报表行自动撑高


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

主题:01.Excel报表行自动撑高

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


加好友 发短信
等级:五尾狐 帖子:1049 积分:8150 威望:0 精华:0 注册:2011/10/11 11:13:00
01.Excel报表行自动撑高  发帖心情 Post By:2011/12/20 11:25:00 [显示全部帖子]

01.Excel报表中,如果某列的内容超过了实际设置的宽度,就看不到后面的内容了。我在EXCEL模板中设置该列为文本型的,并自动换行,但实际输出后,还是看不到超过列宽度的内容。请问:如何实现自动撑高,以便显示出该列所有的内容。

第二个问题:打印EXCEL报表时,最上面总要打印出“www.foxtable.com”,如果去掉这些没用的字符呢。


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


加好友 发短信
等级:五尾狐 帖子:1049 积分:8150 威望:0 精华:0 注册:2011/10/11 11:13:00
  发帖心情 Post By:2011/12/20 16:12:00 [显示全部帖子]

02.EXCEL报表设置自动行高与生成EXCEL报表的困惑  发帖心情 Post By:2011-12-20 15:19:00 [只看该作者]

版主:

    我现在有如下困惑:

    在生成EXCEL报表,版主告诉我是采用了下述语句,动态传送表名称“窗口Table”的名称给模板文件:

      Sheet(3,0).Vlaue = "<任务提醒1_Table1>"           ‘修改模板中的表名称

 

    但在使用过程中,发现需要设置自动行高,因此版主告诉我,采用VBA的语句设置行高,语句如下:

     Rg = Ws.Range("D11")  

 

     前面定义的是Sheet,后面定义的是WorkSheet两类语句肯定无法结合在一起。

 

     因此,我想问:在使用VBA的语句定义表WorkSheet时,如何动态给模板文件传递表名称,也就是“”

任务提醒1_Table1。

 

    谢谢了。


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


加好友 发短信
等级:五尾狐 帖子:1049 积分:8150 威望:0 精华:0 注册:2011/10/11 11:13:00
  发帖心情 Post By:2011/12/20 16:38:00 [显示全部帖子]

03.版主:我把我的语句发给你,分为上下两段,如何才能很好的结合在一起。

'==============================================下面的语句是生成EXCEL报表
'3.根据模板文件, 生成实际的excel报表
Dim ProjectPath As String = "D:\02.鹿王二期工程\92.任务管理\90.任务管理软件\"

Dim Book As New XLS.Book(ProjectPath & "Attachments\任务提醒表.xls")

Book.DefaultFont = New Font("宋体",12)                                          '设置默认字体
Dim rpt As String = ProjectPath & "Reports\任务提醒表.xls"

Dim Sheet As XLS.Sheet = Book.sheets(0)

Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Sheet.Cols(6).Visible = False                                                   '设置第7列不可见

'5.设置完毕EXCEL的格式后, 再做下面的工作: 实际生成EXCEL报表数据
Sheet(3,0).Value = "<任务提醒1_Table1>"              'Sheet(3,0)放的是"数据表名称"
Book.Build()                                         '生成细节区
Book.Save(rpt)                                       '保存工作簿
e.Form.Controls("WebBrowser1").AddRess = rpt         '把报表放到WebBrowser1中

 

'===============下面的语句,是版主发来的做自动行高的语句,不知道如何结合在一起


Dim Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls")
Dim rptAs String =ProjectPath & "Reports\出库单.xls"
Book.Build()
Book.Save(fl) '保存工作簿

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(rpt)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(0)
Dim Rg As MSExcel.Range
Rg = Ws.Range("D4,J4")
Rg.EntireColumn.AutoFit   '自动调整列宽
Rg.EntireRow.AutoFit
rg .WrapText =True '引用单个单元格
App.Visible = True
'Ws.printout(Preview:=True,ActivePrinter:="pdfFactory Pro")
App.Quit


 


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


加好友 发短信
等级:五尾狐 帖子:1049 积分:8150 威望:0 精华:0 注册:2011/10/11 11:13:00
  发帖心情 Post By:2011/12/21 15:28:00 [显示全部帖子]

版主:
   问题:还是解决自动行高的问题,按照版主的指示实现不了,下面等号线“========”下面的语句,与上面的语句,好像是两种生成Sheet表的方法,不能配套使用,为了与上面的语句配套,自动行高怎么实现?请教版主。

e.Form.Controls("WebBrowser1").Visible = True                               '设置WebBrowser1为可见

'根据模板文件, 生成实际的excel报表
Dim ProjectPath As String = "D:\02.鹿王二期工程\92.任务管理\90.任务管理软件\"
Dim rpt As String = ProjectPath & "Reports\任务提醒表.xls"

Dim Book As New XLS.Book(ProjectPath & "Attachments\任务提醒表.xls")
'Dim tmp As String = ProjectPath & "Attachments\任务提醒表.xls"
'Dim Book As New XLS.Book(tmp)

Book.DefaultFont = New Font("宋体",12)                                          '设置默认字体

Dim Sheet As XLS.Sheet = Book.sheets(0)

Dim Style As XLS.Style = Book.NewStyle() '定义新样式
'Style.ForeColor = Color.Red                                                    '设置样式的字体颜色
'Sheet.Cols(0).Width = 120                                                      '设置第1列的宽度
Sheet.Cols(6).Visible = False                                                   '设置第7列不可见


'设置完毕EXCEL的格式后, 再做下面的工作: 实际生成EXCEL报表数据
Vars.Add("UserName", Gettype(String), "")               '定义用户名的全局变量
Vars("UserName") = "超级用户"                           '临时性, 给当前用户赋值, 将来构成系统后, 需要自动侁动获取当前用户名称
Sheet(3,0).Value = "<任务提醒1_Table1,30>"              'Sheet(3,0)放的是"数据表名称"

Book.Build()                                            '生成细节区

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

e.Form.Controls("WebBrowser1").AddRess = rpt         '把报表放到WebBrowser1中

 

'==================================================================================
'上面的语句没有任何错误, 但下面语句,又打开了一个EXCEL表,这样上面和下面就打开两个EXCEL表了

 

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(rpt)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)

Dim Rg As MSExcel.Range
Rg = Ws.Range("D4")                                              '解决自动行高问题
Rg.EntireColumn.AutoFit                                          '自动调整列宽
Rg.EntireRow.AutoFit
rg .WrapText =True '引用单个单元格

 


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


加好友 发短信
等级:五尾狐 帖子:1049 积分:8150 威望:0 精华:0 注册:2011/10/11 11:13:00
  发帖心情 Post By:2011/12/21 16:21:00 [显示全部帖子]

04.版主:

    如果尝试采用EXCEL与VBA中的生成报表的方法,第一无法放到WebBrowser1中,第二不知道如何给他传递参数。也就是下面的语句到底怎么写,就不知道了。

   Sheet(3,0).Value = "<任务提醒1_Table1,30>"              'Sheet(3,0)放的是"数据表名称"

   这个问题,困扰我至少5天了。


 


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


加好友 发短信
等级:五尾狐 帖子:1049 积分:8150 威望:0 精华:0 注册:2011/10/11 11:13:00
  发帖心情 Post By:2011/12/22 10:37:00 [显示全部帖子]

版主:

     还是老问题,我现在用下面的方法生成EXCEL报表,存在如下问题:

      1.界面上要显示两次该报表,App.WorkBooks.Open(rpt)语句要单独打开该报表,这一次如何才能不显示呢。第二次:e.Form.Controls("WebBrowser1").AddRess = rpt ,显示到WebBrowser1中,这是我所需要的。

      2.无法给EXCEL报表传递传递,想动态的把窗口Table的数据传给EXCEL报表组织到如何做。

      版主,能否抽出宝贵时间,仔细看看下面的语句,能否把不合适的语句去掉,把需要的语句给加上。

      我真的已经没有任何办法了。这个问题困扰我6天了。

程序如下:

Dim ProjectPath As String = "D:\02.鹿王二期工程\92.任务管理\90.任务管理软件\"

Dim Book As New XLS.Book(ProjectPath & "Attachments\任务提醒表.xls")
Dim rpt As String = ProjectPath & "Reports\任务提醒表.xls"

 

Book.Build()
Book.Save(rpt) '保存工作簿


Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(rpt)              '这里打开了"任务提醒表.xls",这次如何减掉呢?
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Ws.Cells(4,1).Value = "<任务提醒1_Table1,-20>"                    '不起作用,到底怎么做?怎么传递窗口Table的名称呢?
Wb.WorkSheets(1).range("A4").Value = "<任务提醒1_Table1,-20>"     '不起作用,到底怎么做?


Dim Rg As MSExcel.Range
Rg = Ws.Range("D4,J4")                                           '解决自动行高问题, 不起任何作用,怎么做呢?
Rg.EntireColumn.AutoFit                                          '自动调整列宽
Rg.EntireRow.AutoFit
App.Visible = True
Wb.Close(rpt)                                                            ‘这里好像也不起作用。
e.Form.Controls("WebBrowser1").AddRess = rpt         '这里又打开了"任务提醒表.xls", 把报表放到WebBrowser1中


 回到顶部