一个小问题

在编写帮助的时候,我曾经写过一段简单的代码:

Dim Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls")
Dim
Sheet As XLS.Sheet = Book.Sheets(0)
Book.Build()
Sheet(Sheet.Rows.Count, 0).Value =
"制单人:" & User.Name
Book.Save(
"c:\reports\test.xls"
)

执行的结果很奇怪,并没有如我所料在最后一行出现制单人,也就是说第四行代码没有任何效果,这一度让我百思不得其解。

这是因为执行Build方法之后,原来的模板工作表会被全部删除,取而代之的是基于模板生成的新的工作表,而变量sheet在引用的是模板工作表,所以第四行代码是无效的。

因此,如果要在Build方法生成后修改生成的报表,必须使变量Sheet指向新生成的工作表:

Dim Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls")
Dim
Sheet As XLS.Sheet
Book.Build()
Sheet = Book.Sheets(
0)
Sheet(Sheet.Rows.Count,
0).Value = "制单人:" & User.Name
Book.Save(
"c:\reports\test.xls")


本页地址:http://www.foxtable.com/webhelp/topics/1982.htm