Python学习笔记(7):操作Excel
2018-02-06 00:07
525 查看
简述
Python对Excel操作的方法主要有openpyxl、xlsxwriter、xlrd、xlwt、xlutils这几种,下面我们逐个进行介绍。openpyxl
openpyxl包提供了读写Excel2010版本(即后缀为.xlsx)的方法。写操作
openpyxl包提供了多种写入操作的方法。
from openpyxl import Workbook from openpyxl.compat import range from openpyxl.utils import get_column_letter wb = Workbook() dest_filename = 'empty_book.xlsx' ws1 = wb.active ws1.title = "range names" for row in range(1, 40): ws1.append(range(600)) ws2 = wb.create_sheet(title="Pi") ws2['F5'] = 3.14 ws3 = wb.create_sheet(title="Data") for row in range(10, 20): for col in range(27, 54): _ = ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col))) print(ws3['AA10'].value) wb.save(filename = dest_filename)
上面这段代码实现了三种写操作,第一种是对整行操作,第二种和第三种是对单个单元格写入数据,不同的是第二种可以直接通过单元格名称定位单位格,第三种则需要通过行列号来定位。
读操作
同样通过一段代码来了解读操作。
from openpyxl import load_workbook wb = load_workbook(filename='empty_book.xlsx') sheet_ranges = wb['range names'] print sheet_ranges['D18'].value
openpyxl提供的读操作非常简单:
第一步:获取指定Excel文件的workbook。
第二步:可以利用workbook和sheet页的名称直接获取sheet,也可以通过worksheets方法获取sheet对象集合。
第三步:利用sheet[‘单元格名’]可以直接获取单元格对象,进而获取单元格的值。
除此之外,openpyxl还提供了许多方法,例如读写Comments等。有兴趣的同学可以通过文档进行学习https://openpyxl.readthedocs.io/en/stable/
xlsxwriter
xlsxwriter模块用于创建和写入Excel2010版本(即后缀为.xlsx)的文件。支持的版本有 Python 2.5, 2.6, 2.7, 3.1, 3.2, 3.3, 3.4, 3.5。import xlsxwriter workbook = xlsxwriter.Workbook('Expenses01.xlsx') worksheet = workbook.add_worksheet() expenses = ( ['Rent', 1000], ['Gas', 100], ['Food', 300], ['Gym', 50], ) row = 0 col = 0 for item, cost in (expenses): worksheet.write(row, col, item) worksheet.write(row, col + 1, cost) row += 1 worksheet.write(row, 0, 'Total') worksheet.write(row, 1, '=SUM(B1:B4)') workbook.close()
写操作的步骤与openpyxl相同,只是方法不同,这里对单元格的写入必须要根据行列号进行定位。
想了解更多关于xlsxwriter的内容可以查看文档,https://xlsxwriter.readthedocs.io/。
xlrd和xlwt
xlrd和xlwt用于读写早于07版本的Excel文件(后缀为.xls)。写操作
xlwt与xlsxwriter的用法基本一致,具体可参见http://xlwt.readthedocs.io/en/latest/。
读操作
获取workbook:xlrd提供了open_workbook方法用于打开文件,获取workbook。
获取sheet:xlrd可以通过workbook对象的sheet_by_index和sheet_by_name方法获得单个sheet对象,也可以通过sheets方法获取所有sheet对象
获取行、列、单元格:可以通过sheet对象的row_values和col_values和cell_value分别获取行、列以及单元格的值。
下面是个简单的读取单元格数据的例子。
import xlrd wb = xlrd.open_workbook(filename='student.xls') sheets = wb.sheet_names() ws = wb.sheet_by_name('student') v = ws.cell(0, 1).value.encode('utf-8') print v
如果想深入了解,可以查看文档http://xlrd.readthedocs.io/en/latest/。
xlutils
xlutils汇集了xlrd和xlwt,另外,还提供了对Excel文件的复制、修改和过滤。但这些功能现在都已用openpyxl实现。所以在这里不多介绍。相关文章推荐
- python学习笔记(十):操作excel
- python学习笔记(excel简单操作)
- python3操作Excel学习笔记
- python 操作Excel 学习笔记
- Python 操作Excel 学习笔记(一)
- Python学习笔记-Excel读写操作
- Python学习笔记-数据报表之Excel操作模块
- Python学习笔记-数据报表之Excel操作模块
- Boost.Python 学习笔记 No.2——python操作c++对象
- Python 学习笔记——文件对象和操作
- Python学习笔记——文件对象和操作(1)
- Python学习笔记——文件对象和操作(2)
- Python学习笔记八:字符串的操作(二)
- python 系统学习笔记(八)---文件操作
- 学习笔记---excel 操作POI与JXL的比较
- python学习笔记1(字符串操作)
- Python学习笔记:字符串基本操作
- python学习笔记(2)序列的通用基本操作
- python学习笔记: 一些有用的文件操作函数
- Jython-Java操作Python脚本学习笔记(一)