爬虫入门【9】Python链接Excel操作详解-openpyxl库
2017-12-09 12:36
585 查看
Openpyx是一个用于读写Excel2010各种xlsx/xlsm/xltx/xltm文件的python库。
现在大多数用的都是office2010了,如果之前之前版本的可以使用xlrd读,xlwt写,这里就不介绍了。
我们还可以通过create_sheet()方法来创建新的worksheet。
一般默认创建的sheet的名字是序列化的,我们可以更改title属性来设置想要的名称。
一旦我们指定了名称,可以使用key的方法获取,wb['Title']
如果我们想要遍历所有的sheet,可以用for循环。
我们还可以在同一个workbook内拷贝sheet
并且可以直接指定单元格的值
另外一直是通过worksheet的cell()方法来指定单元格。
如果我们在内存中创建一个worksheet,它是默认没有包含cell的,只有第一次使用的时候才会创建。
所以我们可以提前将所需要的单元格过一遍,不指定值,就可以创建出来。
矩阵型的单元格组可以使用切片获取:
单列或者单行的单元格,也是类似的获取方式
或者采用迭代器的方法,iter_rows()和iter_cols()方法。
不过save方法会覆盖相同路径的文件。
其他诸如插入图片、构建图表等情况,用到的时候再讲解。
现在大多数用的都是office2010了,如果之前之前版本的可以使用xlrd读,xlwt写,这里就不介绍了。
入门范例
from openpyxl import Workbook wb=Workbook()#创建一个工作簿 ws=wb.active#获取工作的激活工作表 ws['A1']=42#在A1中插入内容 ws.append([1,2,3])#这里其实是在第二行插入了3个数字,占用了三个单元格 import datetime ws['A2']=datetime.datetime.now()#在A2中插入了当前时间,把上一句的那个1挤掉了 wb.save('sample.xlsx')#保存到当前目录
简单操作
创建一个workbook
一般创建workbook后至少会有一个worksheet,我们可以通过active属性来获取。我们还可以通过create_sheet()方法来创建新的worksheet。
一般默认创建的sheet的名字是序列化的,我们可以更改title属性来设置想要的名称。
一旦我们指定了名称,可以使用key的方法获取,wb['Title']
from openpyxl import Workbook wb=Workbook() ws=wb.active ws1=wb.create_sheet('Mysheet')#默认插入到最后 ws2=wb.create_sheet('Mysheet1',0)#指定插入到第一个位置 ws.title='New Title' ws3=wb['New Title']
如果我们想要遍历所有的sheet,可以用for循环。
for sheet in wb: print(sheet.title)
我们还可以在同一个workbook内拷贝sheet
source=wb.active target=wb.copy_worksheet(source)
控制单元格
单元格可以通过key的方式直接获取,如果不存在这个key,会创建一个。并且可以直接指定单元格的值
c=ws['A3'] ws['A4']=4
另外一直是通过worksheet的cell()方法来指定单元格。
d=ws.cell(row=4,colum=2,value=10)
如果我们在内存中创建一个worksheet,它是默认没有包含cell的,只有第一次使用的时候才会创建。
所以我们可以提前将所需要的单元格过一遍,不指定值,就可以创建出来。
for i in range(1,101): for j in range(1,101): ws.cell(row=i,colum=j)
矩阵型的单元格组可以使用切片获取:
cell_range=ws['A1':'C2']
单列或者单行的单元格,也是类似的获取方式
colC=ws['C'] col_range=ws['C:D'] row10=ws[10] row_range=ws[5:10]
或者采用迭代器的方法,iter_rows()和iter_cols()方法。
for row in ws.iter_rows(min_row=1,max_col=3,max_row=2): for cell in row: print(cell)
数据存储
一旦我们得到一个cell,我们就可以指定值了。c.value='hello world' print(c.value) d.value=3.14 print(d.value)
保存文件
workbook的save方法,指定文件保存路径即可。不过save方法会覆盖相同路径的文件。
wb=Workbook() wb.save('sample.xlsx')
加载文件
需要引入load_workbook()from openpyxl import load_workbook wb2=load_workbook('sample.xlsx') print(wb2.get_sheet_names())
几个范例
写workbook
在一个book中创建了3个sheet。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)
读取一个workbook
from openpyxl import load_workbook wb=load_workbook(filename='empty_book.xlsx') sheet_ranges=wb['range names'] print(sheet_ranges['D18'].value)
其他诸如插入图片、构建图表等情况,用到的时候再讲解。
相关文章推荐
- python入门(十):文件的操作详解
- python 对excel操作用法详解
- python 爬虫入门(4) opener详解
- Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解
- python入门系列10―——Excel操作
- python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
- python操作excel之xlrd、xlwt模块详解
- python3结合openpyxl库实现excel操作的实例代码
- 【python】解析Excel中使用xlrd库、xlwt库操作,写入Excel文件详解(二)
- Python操作excel入门
- 【python】解析Excel中使用xlrd库、xlwt库操作,使用xluils库修改Excel文件详解(三)
- Python使用xlwt模块操作Excel的方法详解
- Python爬虫入门:Urllib库使用详解(模拟CSDN登录)
- python用字符串操作20行代码简单爬虫入门+案例(爬取一章《三体》小说)
- Python爬虫天气预报实例详解(小白入门)
- python爬虫入门之requests库详解1
- Python实现爬虫抓取与读写、追加到excel文件操作示例
- python操作excel之 模块 xlrd (详解)
- python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
- Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解