您的位置:首页 > 其它

控制用户打开excel文件后只能查看和编辑指定的Sheet页

2010-10-15 11:45 337 查看
系统如何控制用户打开excel文件后只能查看和编辑指定的Sheet页

代码下载:http://ishare.iask.sina.com.cn/f/10323532.html

这个问题肯定不是只有我一个人遇到了,不过有这么一个方法一起研究一下。当然要看你们用的是不是soaoffice了,公司项目里用的是这个产品,可以支持js在客户端调用vba接口来控制网页中Excel的表现。方法很简单,关键是下面的这个function,循环隐藏不需要显示的Sheet页,Sheet在VBA中是有Visible属性的:

function onlyShow(sheetName)

{

var obj = document.getElementById("SOAOfficeCtrl").Document;

for(var i=1; i <= obj.Application.Sheets.Count;i++)

{

if (obj.Application.Sheets(i).Name != sheetName)

{

obj.Application.Sheets(i).Visible = false;

}

obj.Application.Sheets(sheetName).Select();

}

}

比方说要在打开文件的时候只显示Sheet1,那么就在soaoffice的OnDocumentOpened事件中添加一句代码:onlyShow(“Sheet1”);

代码如上,这样保证你打开的Excel文件只显示Sheet1(当然打开的Excel中要有Sheet1存在才行),不同用户登录后变量怎么设置的细节不说了,看代码吧。可能有高人一下就看出问题了,说可以手动设置Excel再把其他的Sheet显示出来。Exactly!有对策,webOpen打开文件的时候第二个参数使用:1就OK啦!

怎么又不能编辑了?有办法!创建SOAOfficeX.ExcelResponse对象,设置setAllUsedRangeNeedSubmit(true),就可以编辑了,大概代码如下,这个demo就不改了,I’m soooo tired,it’s time to go to bed. Do it yourself, you can make it.

SOAOfficeX.ExcelResponse SOAExcel = new SOAOfficeX.ExcelResponse();

SOAExcel .openSheet(“Sheet1”). setAllUsedRangeNeedSubmit(true);

……

SOACtrl.assign(SOAExcel);

……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐