标签:False sht Python Excel xlBook vs 模块 加密
Python之Excel模块
这是几个基本的Excel库。
是不是又很多小伙伴无法使用OpenPyXl打开或者控制文件。这里除了网上说的各种原因问题,最后的可能就是文件加密权限问题。
在其他随笔中我有说到过我遇到的公司加密问题。
这里记录一下另外一个python-Excel库,xlwings,具体使用方法,可以自行度娘。
下面是一个大概的介绍:
# 导入库
import xlwings as xw
# 启动进程 visible 是否可视化 add_book 是否新增book
app = xw.App(visible=True, add_book=False)
# 读入已有工作簿
wb = app.books.open(r'filename')
# 引用活动sheet ,也可以直接是Sheet的名字
sht = wb.sheets[0]
# 读取所有内容
info = sht.used_range
# 转为danpas格式
DataFrame = info.options( pd.DataFrame, expand='table', encoding='gbk', index=False).value
# 清楚原表
sht.clear()
# 修改数据
sht['A1'].value = DataFrame
# 保存
wb.save()
# 关闭Excel
wb.close()
# kill Excel进程 比quit()好用
app.kill()
这样就完美避开了公司把Excel文件加密,导致一些第三方库无法打开Excel的问题。
但公司文件安全加密,是一种加密,还有一种是直接加入打开、修改权限密码的Excel。
但遇到使用普通第三方库打开有密码的Excel时,又遇到安全加密软件的限制。导致用OpenPyXl等库输入密码时,安全加密阻止了操作,但是用Xlwings,目前来说,我是没找到能输入密码的方法(如果有的话,记得私聊博主,让我学习学习),所以就出现了这种两个限制Excel操作的问题。
这边我最后使用的是Microsoft Excel的方法来解决(只能在windows上使用):
大概代码如下
# 导入库
import win32com.client
# 启动Excel进程
xlsApp = win32com.client.Dispatch("Excel.Application")
# true打开excel程序界面
xlsApp.Visible = True
# 禁止弹窗-不显示警告信息
xlsApp.DisplayAlerts = False
# 打开 name_path 文件路径,Password 打开密码,WriteResPassword 修改密码
xlBook = xlsApp.Workbooks.Open(name_path, UpdateLinks=False, ReadOnly=False, Format=None,Password='huangyi', WriteResPassword='huangyi')
# 激活 sheetname 的 Sheet
analysis = xlBook.Worksheets(sheetname).Activate
# 新增 sheetname 的 Sheet
xlBook.Worksheets.Add().Name = sheetname
# 获取使用区域的行数
nrows = vs_sht.UsedRange.Rows.Count
# 获取A1-A10的值(是一个二维数组)
Value = vs_sht.Range(vs_sht.Cells('1', 'A'), vs_sht.Cells('10', 'A')).Value
# 将二维数组转为列表
list = [i for item in Value for i in item]
# 改变B3的值 这里可以直接加入公式,也可以是str
vs_sht.Cells('3', 'B').Value = '=SUM(B1:B2)'
# 选中A1到N1
rangeObj = vs_sht.Range('A1:N1'))
# 当前选中行的上面插入选中的行包含的行数
rangeObj.Insert()
# 保存Excle
xlBook.Save()
# 关闭Excel
xlBook.Close()
# 退出Excel进程
xlsApp.Quit()
标签:False,sht,Python,Excel,xlBook,vs,模块,加密 来源: https://www.cnblogs.com/IvanKK/p/16054211.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。