pandas读取加密excel,并保存加密格式

这篇博客介绍了如何使用Python的pywin32库来处理加密的xlsx文件。`df_from_pswxlsx`函数用于读取加密的Excel文件,而`pwd_xlsx`函数用于保存文件并设置新的访问密码。通过这些函数,可以快速高效地进行加密文件的读写操作,提高了处理大量数据的效率。
摘要由CSDN通过智能技术生成

最近在处理些加密文件,并且需要加密保存,确保数据安全。对于读取习惯csv的我来说很头疼,外加发现网上信息比较散我整理了一下xlsx的加密读取和保存
需安装pywin32

!pip install pywin32
import win32com.client as win32

读取:

def df_from_pswxlsx(filename, password, gl_excel_com, sheetname):
    """
    调用格式:
    df=df_from_pswxlsx("D:\\amlui\\pivot\\aa.xlsx","Xyl19765225","KET.Application")
    参数一:文件路径
    参数二:文件密码
    参数三:不同配置的Excel-COM 参数,WPS excel用'KET.Application',
            MS office Excel文件用'Excel.Application'
    参数四:excel工作簿中要处理的sheet名。
    return: 解密后输出的pandas格式的df,df就可以参与各种运算了。
    於策2020年7月7日调试成功,算法改进后运行速度超级快。
    1437条记录从47秒减至2.7秒
    3410条记录从105秒减至3.05秒
    """
    psw_xlsx = win32.DispatchEx(gl_excel_com)  # 这个功能创建新进程,不会打扰用户手动进程
    psw_xlsx.DisplayAlerts = 0  # 不显示警告,SaveAS的弹框就不出来了。
    wb = psw_xlsx.Workbooks.Open(filename, UpdateLinks=False, ReadOnly=False, Format=None, Password=password,
                                 WriteResPassword=password)
    # 获取工作表具体情况
    data_lst = list(wb.Worksheets(sheetname).UsedRange())  # 数据存入,"原始数据",2-"借贷求和计数"...数字与表名可以互换
    df = pd.DataFrame(data_lst[1:],
                      columns=data_lst[0])  # data_lst[1:]除了表头(只有一行)以外的所有数据,data_lst[0],原excel表的第一行表头作为列索引。
    wb.Close()
    psw_xlsx.DisplayAlerts = 1
    psw_xlsx.Application.Quit()  # 只清掉我自己开启的进程
    return df

#调用保存

def pwd_xlsx(old_filename,new_filename,pwd_str,pw_str=''):
    xcl = win32.Dispatch("Excel.Application")
    # pw_str为打开密码, 若无 访问密码, 则设为 ''
    wb = xcl.Workbooks.Open(old_filename, False, False, None, pw_str)
    xcl.DisplayAlerts = False
    # 保存时可设置访问密码.
    wb.SaveAs(new_filename, None, pwd_str, '')
    xcl.Quit()

参考:
1.https://blog.csdn.net/lttisky/article/details/108236732?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=2

2.https://blog.csdn.net/weixin_43097265/article/details/107248676

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值