1. 解除Excel表格工作表保护的方法

如下文档介绍了Excel表格解除工作表保护的方法,基本的套路就是把excel表格改名一个压缩包文件,接着从压缩包文件中取出对应的sheet页面的配置xml文件,然后把该xml文件中的sheetProtection节点删除掉。最后把文件放入压缩包,并恢复为原excel后缀。重新打开excel表格,该sheet页面的表格保护已被解除。
https://www.jianshu.com/p/b01...
https://www.cnblogs.com/shadr...

2. 使用python快速解除工作表保护

如果sheet页面比较多,逐个去修改比较麻烦,所以这里提供一个使用python脚本快速修改的方案:

import os
import re
import xml.dom.minidom

def delete_protection_node(xml_file):
    doc = xml.dom.minidom.parse(xml_file)
    root = doc.documentElement

    for parent in root.childNodes:
        if(parent.tagName == 'sheetProtection'):
            root.removeChild(parent)

    with open(xml_file, 'w', encoding='UTF-8') as f:
        doc.writexml(f)


walk_names = os.walk(r'xl\worksheets')
for (directory, sub_directorys, file_names) in walk_names:
    for name in file_names:
        m = re.match(r'(.+\.)xml$', name, re.I)
        if m:
            delete_protection_node(os.path.join(directory, name))

无痕1024
1 声望0 粉丝