鱼C论坛

 找回密码
 立即注册
查看: 1608|回复: 14

怎样读取加密的excel

[复制链接]
发表于 2023-8-30 22:20:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import openpyxl
  2. wb = openpyxl.load_workbook('asd.xlsx', read_only=True, keep_vba=True, data_only=True, keep_links=False, password='1122')
复制代码

一直返回
  1. TypeError                                 Traceback (most recent call last)
  2. <ipython-input-1-aec8254904f1> in <module>
  3.       2
  4.       3 # 打开带有密码的工作簿
  5. ----> 4 wb = openpyxl.load_workbook('asd.xlsx', read_only=True, keep_vba=True, data_only=True, keep_links=False, password='1122')
  6.       5
  7.       6 # 遍历工作表

  8. TypeError: load_workbook() got an unexpected keyword argument 'password'
复制代码

这里想读取以下表,然后把整张表重新另存一次,因为里面的表有很多合并单元格和图片,所以不方便用pandas读取

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-30 22:20:40 | 显示全部楼层
在openpyxl库中,load_workbook()函数没有直接提供password参数来读取加密的Excel文件。要读取加密的Excel文件,可以尝试使用win32com库来实现。

首先,确保你已经安装了pywin32库,可以使用以下命令进行安装:
  1. pip install pywin32
复制代码


然后,可以使用以下代码来读取加密的Excel文件并将其另存为新文件:
  1. import win32com.client as win32

  2. # 创建Excel应用程序对象
  3. excel_app = win32.gencache.EnsureDispatch('Excel.Application')

  4. # 打开加密的Excel文件
  5. workbook = excel_app.Workbooks.Open('asd.xlsx', Password='1122')

  6. # 将整张表另存为新文件
  7. workbook.SaveAs('new_file.xlsx')

  8. # 关闭Excel应用程序
  9. excel_app.Quit()
复制代码


这段代码使用了win32com库中的Excel应用程序对象来打开加密的Excel文件,并使用Password参数提供密码。然后,使用SaveAs()方法将整张表另存为新文件。最后,关闭Excel应用程序。

请注意,使用win32com库需要在Windows操作系统上运行,并且需要安装Microsoft Excel软件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-30 22:28:10 | 显示全部楼层

回帖奖励 +5 鱼币

你为什么不直接用解密后的excel呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-30 22:30:45 | 显示全部楼层
isdkz 发表于 2023-8-30 22:20
在openpyxl库中,load_workbook()函数没有直接提供password参数来读取加密的Excel文件。要读取加密的Excel ...
  1. ---------------------------------------------------------------------------
  2. com_error                                 Traceback (most recent call last)
  3. <ipython-input-2-8a865c2ae754> in <module>
  4.       5
  5.       6 # 打开加密的Excel文件
  6. ----> 7 workbook = excel_app.Workbooks.Open('asd.xlsx', Password='1122')
  7.       8
  8.       9 # 将整张表另存为新文件

  9. ~\AppData\Local\Temp\gen_py\3.8\00020813-0000-0000-C000-000000000046x0x1x9\Workbooks.py in Open(self, Filename, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
  10.      73                         , Editable=defaultNamedOptArg, Notify=defaultNamedOptArg, Converter=defaultNamedOptArg, AddToMru=defaultNamedOptArg, Local=defaultNamedOptArg
  11.      74                         , CorruptLoad=defaultNamedOptArg):
  12. ---> 75                 ret = self._oleobj_.InvokeTypes(1923, LCID, 1, (13, 0), ((8, 1), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17)),Filename
  13.      76                         , UpdateLinks, ReadOnly, Format, Password, WriteResPassword
  14.      77                         , IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify

  15. com_error: (-2147352567, '发生意外。', (0, 'Microsoft Excel', '抱歉,无法找到 asd.xlsx。是否可能被移动、重命名或删除?', 'xlmain11.chm', 0, -2146827284), None)
复制代码
还是不行呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-30 22:33:44 | 显示全部楼层
歌者文明清理员 发表于 2023-8-30 22:28
你为什么不直接用解密后的excel呢

文件被一个网络系统锁了,公司外打不开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-30 22:36:08 | 显示全部楼层

回帖奖励 +5 鱼币

不知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-31 08:50:30 | 显示全部楼层

回帖奖励 +5 鱼币

Astray.R 发表于 2023-8-30 22:33
文件被一个网络系统锁了,公司外打不开

怎样的网络系统锁?也就是说密码不是excel文件本身有的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-31 09:25:11 | 显示全部楼层

回帖奖励 +5 鱼币

关注一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-31 09:27:38 | 显示全部楼层

回帖奖励 +5 鱼币

学习下,但不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-31 11:18:46 | 显示全部楼层

回帖奖励 +5 鱼币

看不懂我只能要个育碧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-31 11:28:00 | 显示全部楼层

回帖奖励 +5 鱼币

本帖最后由 lengyue869 于 2023-8-31 11:29 编辑

亿赛通?先用xlwings打开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-31 14:19:25 | 显示全部楼层
isdkz 发表于 2023-8-31 08:50
怎样的网络系统锁?也就是说密码不是excel文件本身有的?

公司所有的,只要是在公司保存的文件,都会被标记,外网打不开,显示乱码,不过一般我在外网想打开,就必须用python读取另存后才能打开,但是我现在这个excel偏偏自己给他设置了可密码,我试了下openpyxl的方法打开,但是显示load_workbook() got an unexpected keyword argument 'password',我应该已经把openpyxl更新到最新版了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-31 21:49:26 | 显示全部楼层

回帖奖励 +5 鱼币

完全可以问问GPT啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-1 00:00:15 | 显示全部楼层

回帖奖励 +5 鱼币

试试 xlwings
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-1 08:57:27 | 显示全部楼层

回帖奖励 +5 鱼币

copy出来不就没锁了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-27 15:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表