编程语言
首页 > 编程语言> > Python之Excel模块

Python之Excel模块

作者:互联网

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