Foxtable(狐表)用户栏目专家坐堂 → sheet插入行请教


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

主题:sheet插入行请教

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


加好友 发短信
等级:小狐 帖子:315 积分:3554 威望:0 精华:0 注册:2012/12/10 10:38:00
sheet插入行请教  发帖心情 Post By:2014/9/6 15:16:00 [只看该作者]

测试在sheet中插入行,但没成功,请问下面这个代码问题出在哪了?

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\数据查询.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Book.Build() '生成细节区

For i As Integer = 0 To 6
Sheet.Rows.Insert(3) 
Next


Book.Save(ProjectPath & "Reports\数据查询.xls")   '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = ProjectPath & "Reports\数据查询.xls"
Proc.Start()


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


加好友 发短信
等级:一尾狐 帖子:431 积分:3214 威望:0 精华:2 注册:2011/9/10 21:35:00
  发帖心情 Post By:2014/9/6 20:06:00 [只看该作者]

一个小问题

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

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")


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


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


 回到顶部