以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  01.Excel报表行自动撑高  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=15306)

--  作者:包头123
--  发布时间:2011/12/20 11:25:00
--  01.Excel报表行自动撑高

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

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


--  作者:blackzhu
--  发布时间:2011/12/20 12:01:00
--  

呵呵,你要付钱了.

 

另外:

 

excel行高:

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=10052&page=3


--  作者:包头123
--  发布时间: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。

 

    谢谢了。


--  作者:yangming
--  发布时间:2011/12/20 16:20:00
--  
楼主还是上传你的文件吧,呵呵,我看的是一头雾水
--  作者:包头123
--  发布时间: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


 


--  作者:blackzhu
--  发布时间:2011/12/20 17:33:00
--  
如果上面一段可以执行,把下面一段的SAVE去掉.
--  作者:包头123
--  发布时间: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 \'引用单个单元格

 


--  作者:blackzhu
--  发布时间:2011/12/21 15:40:00
--  

e.Form.Controls("WebBrowser1").AddRess = rpt         在浏览器打开

 

 

 

Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(rpt) 再次打开

 

试着结合一下


--  作者:包头123
--  发布时间:2011/12/21 16:21:00
--  

04.版主:

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

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

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


 


--  作者:包头123
--  发布时间: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中