python打开加密的excel代码
python win32com 读取带密码的excel
之前用到的win32com读取带密码excel的相关内容,今天刚好准备整理下,突然发现方法又不灵了。
以下为错误示范
# 已知excel密码去除
def del_password(filename, password):
excel = DispatchEx("Excel.Application") # 启动excel
excel.Visible = True # 可视化
excel.DisplayAlerts = False # 是否显示警告
wb = excel.Workbooks.Open(filename, Password=password) # 打开文件
这就神奇了,之前用着好好的呢?,没道理啊这么简单的打开,不就加个password参数?明明把密码参数给输入了,为什么还提示输入密码框?
(再重新看看微软bb的官方介绍)https://msdn.microsoft.com/zh-cn/VBA/Excel-VBA/articles/workbooks-open-method-excel,没毛病啊。
实在不行,找回以前写的。想起来有个问题,大家注意看不同,注意添加的几个参数。
(标红参数少一个不行,顺序没影响,但是这几个参数之间没有实在的联系啊,百思不得解。先mark下,有知道的大神指教下——之前也遇到过类似的方法只写一个参数不行,如有类似情况试着把参数写全再进行操作)
暂时只得到一个结论:说明win32com读取的excel操作不是严格按照python的位置参数,不是可有可无的,而是严格匹配。
以下为正确
# 已知excel密码去除
def del_password(filename, password):
excel = DispatchEx("Excel.Application") # 启动excel
excel.Visible = visible # 可视化
excel.DisplayAlerts = displayalerts # 是否显示警告
wb = excel.Workbooks.Open(filename, UpdateLinks=False, ReadOnly=False, Format=None, Password=password, WriteResPassword=password) # 打开文件
用python怎么打开带密码的excel啊?,密码是知道的,我在网上找到了两个包可以打开excel,分别是xlrd pyExcelerator。可是用它们打开带密码的excel就不知道怎么用了!!
import sys
import win32com.client
xlApp = win32com.client.Dispatch("Excel.Application")
print "Excel library version:", xlApp.Version
filename,password = 'C:myfilesfoo.xls', 'qwerty12'
xlwb = xlApp.Workbooks.Open("filename.xls", 2, True, None, None, "secret")
python怎么读取excel
python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。下面记录python读取excel.
python读excel——xlrd
这个过程有几个比较麻烦的问题,比如读取日期、读合并单元格内容。下面先看看基本的操作:
首先读一个excel文件,有两个sheet,测试用第二个sheet,sheet2内容如下:
python 对 excel基本的操作如下:
# -*- coding: utf-8 -*-import xlrd
import xlwtfrom datetime import date,datetimedef read_excel(): # 打开文件
workbook = xlrd.open_workbook(r'F:\demo.xlsx') # 获取所有sheet
print workbook.sheet_names() # [u'sheet1', u'sheet2']
sheet2_name = workbook.sheet_names()[1] # 根据sheet索引或者名称获取sheet内容
sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始
sheet2 = workbook.sheet_by_name('sheet2') # sheet的名称,行数,列数
print sheet2.name,sheet2.nrows,sheet2.ncols # 获取整行和整列的值(数组)
rows = sheet2.row_values(3) # 获取第四行内容
cols = sheet2.col_values(2) # 获取第三列内容
print rows print cols # 获取单元格内容
print sheet2.cell(1,0).value.encode('utf-8') print sheet2.cell_value(1,0).encode('utf-8') print sheet2.row(1)[0].value.encode('utf-8')
# 获取单元格内容的数据类型
print sheet2.cell(1,0).ctypeif __name__ == '__main__':
read_excel()
运行结果如下:
以上就是python怎么读取excel的详细内容,更多请关注码农之家其它相关文章!
python操作excel的方法
摘要:
Openpyxl是一个常用的python库,用于对Excel的常用格式及其模板进行数据读写等操作。
简介与安装openpyxl库
Openpyxl is a Python library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
安装
pip install openpyxl
pillow:在文件中需要使用images (jpeg, png, bmp,...)时,需要安装pillow库。
注意:写操作时请关闭需要操作的excel文件,否则写不成功
加载xlsx操作内容
加载外部excel的xlsx步骤:
加载xlsx文件,获得该文件的句柄,为workbook
from openpyxl import load_workbook
wb2 = load_workbook('test.xlsx')
print wb2.get_sheet_names()
# ['Sheet2', 'New Title', 'Sheet1']
在内存中新建workbook
创建 workbook
开始使用openpyxl,没有必要在文件系统上创建一个文件。
只需要导入Workbook类并开始使用它。可以把wordbook想象成一个excel文件。
from openpyxl import Workbook
wb = Workbook()
workbook创建后至少至少要创建一个worksheet。使用 openpyxl.workbook.Workbook.active()
ws = wb.active
该方法使用了_active_sheet_index属性, 默认会设置0
创建worksheet
使用 openpyxl.workbook.Workbook.create_sheet() 创建新的worksheet
ws1 = wb.create_sheet("new_sheet_1") # 新建sheet,插入到最后(默认)
ws2 = wb.create_sheet("new_sheet_2", 0) # 插入到最开始的位置
指定worksheet的名称
不指定sheet名称时,按照sheet,sheet1,sheet2自动增长
ws3 = wb.create_sheet()
自定义worksheet名称,通过title属性指定名称,设置了sheet的名称
ws3.title = "new_sheet_3"
输出wb现在所有的sheetname查看
通过 openpyxl.workbook.Workbook.sheetnames()输出wb现在所有的sheetname
print wb.get_sheet_names()
print(wb.sheetnames)
循环
for sheet in wb:
print(sheet.title)
指定worksheet tab按钮的颜色
新建的sheet tab颜色为白色,可以另外指定sheet tab按钮的颜色
ws3.sheet_properties.tabColor = "1072BA"
激活某个worksheet
通过worksheet名称激活某个sheet使用
名称看成workbook中的一个key
ws3 = wb["new_sheet_3"]
通过 _active_sheet_index 激活某个sheet使用
wb._active_sheet_index = 1 # 获取第二个sheet
创建worksheet副本
使用 openpyxl.workbook.Workbook.copy_worksheet() 创建worksheet副本
source = wb.active
target = wb.copy_worksheet(source)
只能复制cell和style。不能复制工作表之间的工作簿。
操作单元格
当worksheet在内存中被创建时,是没有包含cells的,cells是在首次访问时创建
单元格可以看作是worksheet的key,通过key去访问单元格中的数据
c = ws['A3'] # 访问单元格,不存在则会自动创建一个
print c.value
ws['A4'] = 'a4 value' # 指定单元格的值
print ws['A4'].value
d = ws.cell(row=4, column=2, value='通过cell指定') # 通过row column数字指定
print d.value
循环在内存中创建cells
不用指定其值也可以在内存中创建
for i in range(1, 10):
for j in range(1, 10):
ws.cell(row=i, column=j)
通过切片Ranges指定许多cells
cell_range = ws['A1':'C2']
也可以Ranges rows 或者columns
print ws['C']
print ws['C:D']
print ws[10]
print ws[5:10]
也可以使用iter_rows() 指定行->行,截止列
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
for c in row:
print(c)
iter_cols() 指定列->列,截止行
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
for c in row:
print(c)
遍历所有文件的行或列
ws['C9'] = 'hello world'
tuple(ws.rows) # 转化成tuple方便for in操作
tuple(ws.columns)
保存文件
wb = Workbook()
wb.save("assets/sample.xlsx")
此操作将覆盖现有的文件没有警告。
所有的操作都需要保存到excel才能看见
保存为模板
指定属性 as_template=True ,就可以将文档保存为模板.xltx
wb = load_workbook('document.xlsx')
wb.template = True
wb.save('document_template.xltx')
或者将该属性设置为False(默认),另存为一个文档:
wb = load_workbook('document_template.xltx')
wb.template = False
wb.save('document.xlsx', as_template=False)
使用公式
wb = load\_workbook\('assets/sample.xlsx'\)
ws = wb.active
ws\["A5"\] = "=SUM\(2, 1\)"
wb.save\("assets/sample.xlsx"\)
总结
以上所述是小编给大家介绍的python操作excel的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!
以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。