这里有新鲜出炉的 Python 入门,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
前段时间做一个项目,不得不使用 Python 直接生成 Excel 文件,后来随着需求的变化,还要对已有的 Excel 文件进行读取。所以想着记录下来,这篇文章主要给大家介绍了 Python 操作 Excel 之 xlsx 文件的相关资料,需要的朋友可以参考下。
前言
之前处理 excel 的读写时用的是 xlrd/xlwt, 但是这两个库有个缺点就是只对 xls 的格式处理的比较好,对以 xlsx 结尾的格式就不行了。由于现在大家使用的都是最新版本的 office,excel 的格式都是 xlsx,因此此时再继续用 xlrd/xlwt 处理就不合适了,庆幸的是对于 xlsx 文件的读写,我们还可以使用 openpyxl 来操作。
我对 excel 并不熟悉,平时也不怎么用,所以对 excel 的处理很简单,只是简单的读写,这里演示的也是简单的读写操作,具体的高级功能,可以参考文后的链接地址。
一:写一个 excel 文件如下
- from openpyxl import Workbook
- from openpyxl.utils import get_column_letter
- # 在内存中创建一个workbook对象,而且会至少创建一个 worksheet
- wb = Workbook()
- #获取当前活跃的worksheet,默认就是第一个worksheet
- ws = wb.active
- #设置单元格的值,A1等于6(测试可知openpyxl的行和列编号从1开始计算),B1等于7
- ws.cell(row=1, column=1).value = 6
- ws.cell("B1").value = 7
- #从第2行开始,写入9行10列数据,值为对应的列序号A、B、C、D...
- for row in range(2,11):
- for col in range (1,11):
- ws.cell(row=row, column=col).value = get_column_letter(col)
- #可以使用append插入一行数据
- ws.append(["我","你","她"])
- #保存
- wb.save(filename="/Users/budong/Desktop/a.xlsx")
二:读刚刚写入的 excel 内容如下
- from openpyxl import load_workbook
- #打开一个workbook
- wb = load_workbook(filename="/Users/budong/Desktop/a.xlsx")
- #获取当前活跃的worksheet,默认就是第一个worksheet
- #ws = wb.active
- #当然也可以使用下面的方法
- #获取所有表格(worksheet)的名字
- sheets = wb.get_sheet_names()
- #第一个表格的名称
- sheet_first = sheets[0]
- #获取特定的worksheet
- ws = wb.get_sheet_by_name(sheet_first)
- #获取表格所有行和列,两者都是可迭代的
- rows = ws.rows
- columns = ws.columns
- #迭代所有的行
- for row in rows:
- line = [col.value for col in row]
- print line
- #通过坐标读取值
- print ws.cell('A1').value # A表示列,1表示行
- print ws.cell(row=1, column=1).value
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对 PHPERZ 的支持。
来源: http://www.phperz.com/article/17/0522/332829.html