#coding=utf-8
import openpyxl
from openpyxl import Workbook
# 默认可读写,若有需要可以指定write_only和read_only为True
# 新建Excel表格
wb = Workbook('new_excel.xlsx')
# 加载本地已有文件
wb2 = openpyxl.load_workbook('excel.xlsx')
# 获取所有sheet的名称
# 老版openpyxl支持方法,新版建议直接使用属性sheetnames
# print(wb.get_sheet_names())
# print(wb2.get_sheet_names())
print('sheetnames')
print(wb.sheetnames)
print(wb2.sheetnames)
# 根据sheet名字获得sheet
# 老版办法,建议使用新版本方法
# a_sheet = wb2.get_sheet_by_name('Sheet1')
a_sheet = wb2['Sheet1']
# 获取sheet的标题
print(a_sheet.title)
# 获取当前显示的sheet页,两种方式都可以
sheet = wb2.active
# sheet = wb2.get_active_sheet
# 获取单元格
a4 = sheet['A4']
print('(%s,%s) is %s.' % (a4.column, a4.row, a4.value))
# 获得最大列和最大行
print('获得最大列和最大行')
print(sheet.max_column)
print(sheet.max_row)
# 获取行和列
# sheet.rows为生成器, 里面是每一行的数据,每一行又由一个tuple包裹。
# sheet.columns类似,不过里面是每个tuple是每一列的单元格。
# 因为按行,所以返回A1, B1, C1这样的顺序
for row in sheet.rows:
for cell in row:
print('(%s,%s) is %s.' % (cell.column, cell.row, cell.value))
print('================')
# A1, A2, A3这样的顺序
for column in sheet.columns:
for cell in column:
print('(%s,%s) is %s.' % (cell.column, cell.row, cell.value))
# 上面的代码就可以获得所有单元格的数据。如果要获得某行的数据呢?给其一个索引就行了,因为sheet.rows是生成器类型,不能使用索引,转换成list之后再使用索引,list(sheet.rows)[2]这样就获取到第三行的tuple对象。
print('================')
for cell in list(sheet.rows)[2]:
print('(%s,%s) is %s.' % (cell.column, cell.row, cell.value))
# 如何获得任意区间的单元格?
# 可以使用range函数,下面的写法,获得了以A1为左上角,B3为右下角矩形区域的所有单元格。注意range从1开始的,因为在openpyxl中为了和Excel中的表达方式一致,并不和编程语言的习惯以0表示第一个值。
for i in range(1, 4):
for j in range(1, 3):
print(sheet.cell(row=i, column=j))
# 还可以像使用切片那样使用。sheet['A1':'B3']
# 返回一个tuple,该元组内部还是元组,由每行的单元格构成一个元组。
for row_cell in sheet['A1':'B3']:
for cell in row_cell:
print(cell)
for cell in sheet['A1':'B3']:
print(cell)
# 根据字母获得列号,根据列号返回字母
# 需要导入, 这两个函数存在于openpyxl.utils
from openpyxl.utils import get_column_letter, column_index_from_string
# 根据列的数字返回字母
print(get_column_letter(2)) # B
# 根据字母返回列的数字
print(column_index_from_string('D')) # 4
本代码的执行结果就不贴出来,由于太多了,大家可以自己找几个文件随便进行测试。
Python 3.X 模块openpyxl学习和使用—安装和基本使用前言openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files.It was born from lack of existing library to read/write natively from Python the ...
Python Amcrest
使用SDK HTTP API的Python 2.7 / 3.x模块。 Amcrest和大华设备共享相似的固件。 大华摄像机和NVR也可以与此模块配合使用。
文档: :
$ pip install amcrest --upgrade
$ eval " $( register-python-argcomplete amcrest-cli ) "
# To enable amcrest-cli autocomplete in the system:
$ echo ' eval "$(register-python-argcomplete amcrest-cli)" ' > /etc/profile.d/amcrest-cli-autocomplete.sh
$ git clone git@github.com:tchellomell
安装openpyxl所需文件,发现除了openpyxl-2.6.0.tar.gz 和 et_xmlfile-1.0.1.tar.gz还缺少jdcal-1.4.1.tar.gz,奈何网站连接困难,为方便大家上传在此,也将下载地址附给大家,大家可以自己尝试下载看看:https://pypi.org/project/jdcal/#files
这个下载文件中包含了以上三个文件,解压后进入相应的文件目录,执行 python setup.py install (三个文件目录下都是执行这条命令)
openpyxl模块:
是用于解决Excel(WPS等均可使用)中扩展名为xlsx/xlsm/xltx/xltm的文件读写的第三方库。xls文件要使用xlwt 、wlrd两个模块。
主要概念:
Workbooks,Sheets,Cells。Workbook就是一个excel工作簿;Sheet是工作簿中的一张工作表;Cell就是表的一个单元格。openpyxl不管读写都是:打开Workbook,定位...
python中 openpyxl是解析 .xlsx 文件的模块,一般使用pip install openpyxl 就可以安装。
[h_pw@localhost ~]$ sudo pip install openpyxl
[sudo] h_pw 的密码:
Collecting openpyxl
Downloading https://files.pythonhosted.org/package...
下载DjangoUeditor,发现不支持Python3.x,经过修改,在Python2.X(测试环境为Python2.6.6 + django-1.6.5 和Python2.7.8 + django-1.6.5)和Python3.X(测试环境为Python3.4.1 + django-1.6.5)下完美支持
下载DjangoUeditor,发现不支持Python3.x,经过修改,在Python2.X(测试环境为Python2.6.6 + django-1.6.5 和Python2.7.8 + django-1.6.5)和Python3.X(测试环境为Python3.4.1 + django-1.6.5)下完美支持
下载DjangoUeditor,发现不支持Python3.x,经过修改,在Python2.X(测试环境为Python2.6.6 + django-1.6.5 和Python2.7.8 + django-1.6.5)和Python3.X(测试环境为Python3.4.1 + django-1.6.5)下完美支持
工作需要要处理excel中的数据。使用VBA是选择之一,百度一下发现使用python处理数据也是很火。就跟风学习了一下。
python 读写excel文件主要有xlrd和xlwt两个库。还有新的openpyxl。这里介绍最新openpyxl。
使用pip install openpyxl 即可。如果出现SSL错误,可以使用国内的镜像网站:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl
如果还是出现错误,就重复几次。
公司的防火墙限制,无法使用pip在线安装,开墙的审批流程较为繁琐,故采取离线安装的方式。
步骤如下:
1、官网https://pypi.org/project/jdcal/#files下载jdcal安装压缩包;
2、 官网https://pypi.org/project/et_xmlfile/1.0.1/#files下载xmlfile安装压缩包;
3、官网https://pypi.org/project/openpyxl/2.6.4/#files下载openpyxl
1. 语法差异:在 Python 3.x 中,一些语法和函数已经改变了,使用方法也不再兼容。
2. 字符串编码:Python 3.x 使用Unicode编码,而 Python 2.x 使用的是 ASCII 编码。
3. 整数除法:在 Python 3.x 中,除法的结果总是浮点数,而在 Python 2.x 中,除法的结果取决于操作数的类型。
4. 异常处理: Python 3.x 中的异常处理语法与 Python 2.x 中的不同。
5. 库和模块的改变: Python 3.x 中有一些库和模块已经不再支持,同时也有一些新的库和模块加入。
总的来说, Python 3.x 更加现代,并且更加注重简洁易用性,但是它不向后兼容 Python 2.x 的代码。因此,如果要继续维护一个项目,最好使用 Python 2.x。