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

如何通过Python的xlsxwriter包为xlsx文件设置密码?

如何用XlsxWriter为XLSX文件设置密码?

Hey there! 先直接给你说清楚:XlsxWriter本身并不支持为生成的XLSX文件设置密码保护,这是这个库的已知局限,官方文档里也明确说明了这一点——它专注于文件内容的生成,没有内置加密功能。

既然你不想用openpyxl,这里有两个简单的替代方案,都是先通过XlsxWriter生成无密码文件,再用其他工具给文件加密:

方案1:Windows环境下调用Excel COM接口(依赖本地安装的Excel)

如果你是在Windows系统上,且电脑里装了Microsoft Excel,可以用win32com.client调用Excel的后台功能给文件加密,代码示例如下:

import xlsxwriter
import win32com.client as win32
import os

# 第一步:用XlsxWriter生成普通xlsx文件
workbook = xlsxwriter.Workbook('unprotected.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write('A1', '这是需要保护的内容')
workbook.close()

# 第二步:调用Excel给文件设置密码
excel_app = win32.Dispatch('Excel.Application')
excel_app.Visible = False  # 让Excel在后台运行,不弹出窗口
workbook = excel_app.Workbooks.Open(os.path.abspath('unprotected.xlsx'))
workbook.Password = 'your_secure_password'  # 替换成你的密码
workbook.Save()
workbook.Close()
excel_app.Quit()

方案2:跨平台使用msoffcrypto-tool(无需依赖Excel)

如果需要跨平台(Linux/macOS/Windows),可以用msoffcrypto-tool这个专门处理Office文件加密的轻量库,先安装它:

pip install msoffcrypto-tool

然后用下面的代码完成生成+加密的流程:

import xlsxwriter
from msoffcrypto import OfficeFile
import os

# 第一步:生成无密码的临时文件
workbook = xlsxwriter.Workbook('temp.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write('A1', '敏感数据')
workbook.close()

# 第二步:给文件加密
with open('temp.xlsx', 'rb') as input_file:
    office_file = OfficeFile(input_file)
    office_file.load_key(password='your_password_here')  # 设置密码
    with open('protected.xlsx', 'wb') as output_file:
        office_file.encrypt(output_file)

# 可选:删除临时文件
os.remove('temp.xlsx')

这两个方案都不需要用到openpyxl,操作起来也比较简单,你可以根据自己的运行环境选择合适的方式~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:53:45