以文本方式查看主题

-  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=40406)

--  作者:东坡一剑
--  发布时间:2013/9/18 10:29:00
--  动态改变Excel模板的行高

为了动态调整Excel报表的行高,编写代码如下:


Dim dr As Row = CurrentTable.Current
If dr Is Nothing Then
    Return
End If
Dim fl As String = ProjectPath & "Attachments\\标签模板.xls"
Dim Book As New XLS.Book(fl) \'根据当前行的几个可能为空值得列是否为空值调整模板的相关行列的高与宽.
Dim sheet = Book.sheets(0)

Dim v,m,n As Single
Dim lst As List(Of Integer)
If dr.IsNull("材质2") Then
    m = m + 1
    lst.add(7)
End If
If dr.IsNull("材质3") Then
    m = m + 1
    lst.add(8)
End If
If dr.IsNull("材质4") Then
    m = m + 1
    lst.add(9)
End If
If dr.IsNull("B1") Then
    n = n + 1
    lst.add(18)
End If
v = 9 * m + 22 * n
v = v/(sheet.Rows.count - 2 - m - n)
v = 9 + v
v = Format(v,"0.00")
MessageBox.Show(v)

For i As Integer = 2 To sheet.Rows.count -1
    If lst.Contains(i) Then
        sheet.Rows(i).height = 0

    End If
    sheet.Rows(i).height = v
Next
book.Save(fl)

 

运行以后错误提示如下,请教诸位问题所在。

 


此主题相关图片如下:aaaa.png
按此在新窗口浏览图片

--  作者:Bin
--  发布时间:2013/9/18 10:44:00
--  
有空值

你调试分析一下! 建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm
看看是哪里是空值