带有权限设置的Excel协同编辑

经常会遇到有类似表单协作的应用,主要场景可以归结为:

  1. 表单需要多个人来分别填写
  2. 每个人填写表单的不同部分,而且不能互相填写
  3. 填写的时候有可能多个人同时在编辑

这样的需求中使用Excel可以很方便地来实现,方式如下:

首先,第一问题很容易解决,我们可以把Excel放到一个共享文件夹或者SharePoint的一个文档库里(这两种方式对于同时编辑的支持有所不同);

其次,每个人填写Excel的不同部分,而且不能填写和自己无关的部分,这个功能可以使用Excel中的“保护工作表”以及“允许用户编辑区域”来设定:

功能一:保护工作表

在Ribbon的“审阅”选项卡中(这些功能在Excel 2007和2010中都可以实现,2003未经验证),有一个“保护工作表”,如下:

image

该功能可以将当前工作表锁定,不允许用户进行编辑(当然也可以用下面的那个按钮来保护整个工作簿),点击后会弹出下面这个对话框,输入一个密码,当用户需要解除保护的时候,需要输入这个密码:

image

功能二:开放允许用户编辑的部分

这部分操作需要在保护工作表之前完成,因为在保护之后就不允许对其进行修改了。

Step 1:点击同一个Ribbon标签中的“允许用户编辑区域”,会弹出下面这个对话框:

image

Step 2:这个对话框中会列出所有在保护工作表的时候,可以由用户来填写的部分,点击“新建”,创建一个新的区域:

image

Step 3:为区域加一个标题,然后选中需要由某个用户编辑的单元格,接下来的这个部分则是为单元格设置权限的重点:

Step 4:在“区域密码”中,输入一个密码,这个密码的含义是说:如果用户需要编辑这个单元格,则需要先输入这个密码才可以。那你要说,那岂不是还要告诉每个用户这个密码么?不用,我们可以点击“权限”,然后选择允许编辑这个区域的用户,然后选择“无需密码的编辑区域”(默认就是选中的),如下图:

image

在经过这样的设置之后,当Manager这个账号打开这个Excel的时候,就可以不用输入密码而编辑这个区域;而当其他用户打开这个Excel的时候,如果也想要编辑这个区域,就需要正确的密码才可以了,其他用户在这些单元格中试图输入的时候会出现下面这个提示:

image

通过重复进行Step 2 ~ Step 4的操作,就可以给不同的用户设置不同的编辑区域了。

功能三:多人同时编辑Excel

Excel其实在很早的时候就可以支持多人同时编辑同一个文件这样的应用场景,但是这要根据我们会把Excel放到什么位置进行共享。

情景 1:如果Excel是在网络的共享文件夹中,则可以实现真正的多人同时编辑。

点击同样Ribbon中的“共享工作簿”,弹出下面这个对话框:

image

选择“允许多用户同时编辑”,之后,在“高级”标签中还可以选择修改的记录等更加复杂的设置。

在这样设置之后,就可以进行同时编辑了。在编辑的过程中,如果用户正在一个单元格中输入,则系统会将其他用户的Excel中的这个单元格临时锁定,用户编辑完之后提交保存的时候,会首先检测其他用户是否已经提交过他们自己的保存,并把其他用户保存的内容更新进来(注意只有在保存的时候会更新其他用户保存的内容,以便控制服务器流量),如下图所示:

image

其他用户更新的内容会使用红色边框标记出来。

TIP:在SharePoint 2010 + Word 2010的配合中,可以实现Word文档的多人同时编辑,其操作方式也是类似的,不过是按照段落为单位进行锁定。

情景 2:Excel保存在SharePoint中。

如果Excel是保存在SharePoint 2010企业版中,当网站开启了Excel Service的时候,就可以在浏览器中进行多人同时编辑(不过功能二的设定貌似不支持Excel Service)。

如果是保存在SharePoint 2007中时,是不支持多人同时编辑同一个Excel文档的,不过会有通知提醒,例如一个用户打开并编辑一个在文档库中的Excel之后、未关闭之前的时候,另一个用户也打开同一个Excel文档并进行编辑的时候,会弹出如下的提示:

image

这里会提醒我们这个Excel文件正在由其他人进行编辑,我们可以选择“只读”仅查看Excel的内容,或者选择“取消”不打开该文档,或者,选择“通知”进行自动通知。

当这个用户选择了“通知”之后,可以如往常一样进行内容的查看(也可以进行编辑),而当第一个用户编辑完成、保存、关闭了Excel文档之后,这个新用户的Excel中就会自动弹出这样一个通知:

image

选择“读-写”之后,会把整个文档的内容更新为最新的版本(在这个期间内,这个新用户所进行的所有修改都会丢失),如下图所示:

image

通过这种方式,可以实现“非同时”的Excel协作编写了。

你可能感兴趣的:(Excel)