You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中为整个XLSX文件设置密码保护

为Excel文件设置全局密码保护的免费Python方案

以下是两个无需付费库的可行方案,解决你无法安装付费库的问题:

方案一:Windows环境下调用Excel COM接口(依赖本地Office)

利用Windows系统自带的COM接口直接操作Excel,实现全局加密,无需额外付费库,前提是你电脑上安装了Office Excel。

import win32com.client as win32
import os

# 初始化Excel应用
excel = win32.gencache.EnsureDispatch('Excel.Application')
# 创建新工作簿
wb = excel.Workbooks.Add()
ws = wb.ActiveSheet

# 写入测试数据
ws.Range("A1").Value = "用户数据1"
ws.Range("B1").Value = "用户数据2"
ws.Range("A2").Value = "用户数据3"
ws.Range("B2").Value = "用户数据4"

# 设置全局打开密码和修改权限密码(可设为同一密码)
open_password = "your_open_pwd"
modify_password = "your_modify_pwd"

# 保存并加密文件
save_path = os.path.join(os.getcwd(), "protected_file.xlsx")
wb.SaveAs(Filename=save_path, Password=open_password, WriteResPassword=modify_password)

# 关闭Excel进程,避免后台残留
wb.Close()
excel.Quit()

安装依赖:执行pip install pywin32即可,若安装失败,可到PyPI下载对应Python版本的whl文件手动安装。

方案二:跨平台加密(msoffcrypto-tool)

使用免费的msoffcrypto-tool库,先生成无密码的Excel文件,再对整个文件进行加密,支持Windows、Mac、Linux多平台。

import pandas as pd
import msoffcrypto
import os

# 第一步:生成普通Excel文件(用pandas或openpyxl都可以)
data = {"姓名": ["张三", "李四"], "年龄": [25, 30]}
df = pd.DataFrame(data)
temp_file = "temp_unprotected.xlsx"
df.to_excel(temp_file, index=False)

# 第二步:加密整个文件
with open(temp_file, "rb") as input_file:
    office_file = msoffcrypto.OfficeFile(input_file)
    office_file.load_key(password="your_global_pwd")  # 设置全局密码
    with open("protected_file.xlsx", "wb") as output_file:
        office_file.decrypt(output_file)

# 可选:删除临时文件
os.remove(temp_file)

安装依赖:执行pip install msoffcrypto-tool pandas,若用openpyxl创建文件则替换为pip install msoffcrypto-tool openpyxl。

注意事项

  • 若安装库时出现报错,优先检查Python版本与库版本是否兼容,比如确保使用的是较新的pip版本(执行pip install --upgrade pip)。
  • msoffcrypto-tool支持绝大多数Excel格式(.xlsx、.xls、.xlsm等),旧版.xls文件加密需注意选择对应加密算法,但一般默认设置即可正常使用。

内容的提问来源于stack exchange,提问作者Camilo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:23:15