在实际工作中,遇到了大量excel文件需要加密,以防止check,于是就网上搜集了一些教程,自己简单写了一个

# -*- coding: utf-8 -*-
# --author:valecalida--
from tkinter import filedialog, simpledialog, Tk
from win32com.client import Dispatch
from os import listdir
from time import sleepdef encrypto_excel(old_filename, new_filename, tmp_passwd, passwd_str=''):excel_tmp = Dispatch("Excel.Application")wb = excel_tmp.Workbooks.Open(old_filename, False, False, None, passwd_str)excel_tmp.DisplayAlerts = Falsewb.SaveAs(new_filename, None, tmp_passwd, '')wb.Close()excel_tmp.Quit()def get_file_path(data_dir):filename_sets = listdir(data_dir)filename = []for file_name in filename_sets:file_name_split = file_name.split('.')if file_name_split[-1] == 'xlsx' or file_name_split[-1] == 'xls':filename.append(file_name)return filenamedef main():root = Tk()root.withdraw()# filetypes=(("Excel files", "*.xlsx"),("Excel files", ".xls"))source_folder = filedialog.askdirectory(title='请选择要加密文件所在文件夹') + '/'file_list = get_file_path(source_folder)excel_tmp_passwd = simpledialog.askstring(title='密码设置', prompt='请输入想要设置的密码:')output_folder = filedialog.askdirectory(title='请选择输出另存的文件夹') + '/'for f_name in file_list:print("[*] " + f_name + ' 开始加密啦~')try:s_f = (source_folder + f_name).replace("/", "\\")# print(s_f)o_f = (output_folder + f_name).replace("/", "\\")# print(o_f)encrypto_excel(s_f, o_f, excel_tmp_passwd)print("[+] " + f_name + " 加密完成了,请注意查看哟~")except Exception as e:print(str(e) + f_name + '加密失败了,请手动设置')if __name__ == '__main__':main()sleep(3)

这里主要是三个功能点:

  • 使用tkinter选择输入输出文件夹,输入自己想要设置的密码
  • 遍历选择的源文件夹,然后将所有的excel文件获取到
  • 利用for循环对每个excel文件进行加密

当然也有一点问题,这个只能加密没有密码的excel文件,如果有密码的话就会提示加密失败,后续再优化吧,下面是运行界面,输入文件夹路径

密码输入框

输出文件夹选择

2022.11.26更新最新版打包exe文件,见:https://download.csdn.net/download/valecalida/87166485

Python对excel文件批量加密(GUI选择)相关推荐

  1. python 判断excel文件是否被加密

    # 环境: win10/mac皆可,python 3.7import pandas as pd import os import xlrd fpath = r'/Users/.../test.xlsx ...

  2. 【收藏】Python利用Excel+模板批量生成word文件

    Python利用Excel+模板批量生成word文件 最近帮朋友批量生成小区业主物业费未缴的律师函.朋友那有物业那边的表格数据,包括楼栋-房间号.业主姓名.欠费日期.欠款金额等信息.目的是需要将这些表 ...

  3. 使用Python获取Excel文件中单元格公式的计算结果

    假设有如下Excel文件,其中第二个WorkSheet中数据如下: 其中D列为公式,现在要求输出该列公式计算的数值结果,代码如下: 代码运行结果: ----------相关阅读---------- 1 ...

  4. Python操作Excel文件:插入一列数据

    问题描述:已有Excel文件,其中包含5列数据,要求在第3列前插入一列数据,保存为新文件. 参考代码: 运行结果: --------董付国老师Python系列教材-------- 1)<Pyth ...

  5. python实现Excel文件读取的程序(附源代码)

    python实现Excel文件读取的程序   前一段时间帮一个朋友用python写了一个读Excel程序操作的程序,具体要求为:读取两个Excel文件,根据其中某个特征的特征值对这两个文件进行取交集操 ...

  6. 详解Python操作Excel文件

    前言 本篇文章主要总结了一下利用python操作Excel文件的第三方库和方法. 常见库简介 1.xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. 地 ...

  7. 用Python处理Excel文件

    用Python读写Excel文件 四种python处理excel模块PK 我主要尝试了四种工具,在此并不会给出他们的排名,因为在不同的应用场景下,做出的选择会不同.   XlsxWriter xlrd ...

  8. Excel 文件怎么批量插入首页、扉页、尾页?怎么将某个 Excel 文件批量插入到其它 Excel 文件的指定位置?

    概要:在我们日常办公中,经常会碰到需要给一批 Excel 文件批量插入首页或者尾页,或者在指定的位置插入新的 Sheet 的需求.「我的ABC软件工具箱」就实现了批量在指定位置插入新的内容的功能,可以 ...

  9. 微信小程序 -- 数据库数据excel文件批量导入

    一.excel文件批量导入数据到数据库 1.创建node.js函数upload,点击upload右键外部终端中安装类库 npm install node-xlsx 2.云函数代码 const clou ...

最新文章

  1. 我与我的专业计算机作文500字,我的好朋友——电脑
  2. 邢波出任全球第一所AI大学校长,履历横跨三门学科
  3. Android手机刷recovery
  4. 项目4---罗列并解释阿里云服务的存储产品
  5. fmdb和mysql的区别_FMDB
  6. Python实现给指定的微信朋友发信息
  7. Integer中1000==1000为false而100==100为true
  8. 迁移应用程序到.NET Framework 4.5:弃用类型与新特性
  9. 旁边一位员工天天跟别人聊天,主管都不敢管,那你当什么主管
  10. npm安装项目所有依赖包
  11. Debian 系统找不到基本命令的解决方法
  12. zipFile 压缩文件夹 C#
  13. Docker 基础之Dockerfile命令详解
  14. go结构体初始化_浅谈golang结构体偷懒初始化
  15. Redis Desktop Manager 黑屏
  16. 高阻态是0还是1_FPGA/ASIC笔试面试题集锦(1)知识点高频复现练习题
  17. 超链接一般有两种表现形式_网站内链分为哪几种?内链的七种表现形式
  18. C1模拟试卷的一个算法题
  19. vue-baidu-api地图标记点(自定义标记图标),设置标记点的优先级
  20. 深入理解Mysql事务ACID特性以及事务隔离级别

热门文章

  1. HRBU_20211112训练
  2. Vue创建app及App挂载和渲染
  3. 魔芋粉的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. w ndows7调亮度快捷键,Windows7电脑亮度怎么调?
  5. 齿坯基准面径向和端面圆跳动公差(μm)
  6. 405错误,java.io.IOException: The temporary upload location [/tmp/tomcat.22.83/work/Tomcat/localhos解决办法
  7. 计算机二级word家长回执单得分,全国计算机国家二级office课件_word第一次课.doc...
  8. python写小程序后台——学习(小白)
  9. Ubuntu系统显示实时网速信息
  10. [竞赛01]2021CCF BDCI新闻摘要自动生成Baseline-T5模型