爬虫入门【9】Python链接Excel操作详解-openpyxl库

Openpyx是一个用于读写Excel2010各种xlsx/xlsm/xltx/xltm文件的python库。

现在大多数用的都是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)

其他诸如插入图片、构建图表等情况,用到的时候再讲解。

时间: 2024-08-11 07:39:31

爬虫入门【9】Python链接Excel操作详解-openpyxl库的相关文章

Python对Excel操作详解

  Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl  tcom包对excel操作. 关键字: Python.Excel.xlrd.xlwt.xlutils.TCl.tcom     1 Python简介 Python是一种面向对象.直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.

【python】Python 字典(Dictionary)操作详解

Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} 也可如此创建字典: dict1 = { 'abc': 456 }; dict2 = { 'abc': 123, 98.6: 37 }; 注意:每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放

Python 字典(Dictionary)操作详解

Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} 也可如此创建字典 dict1 = { 'abc': 456 } dict2 = { 'abc': 123, 98.6: 37 } 注意:每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花

使用Mathematica操作控制Excel - Mathematica Link for Excel操作详解

Mathematica是世界上最有名的数学软件,处理矩阵 列表数据的功能非常强大.如果能把Mathematica和微软的Excel交互使用,将有重要意义. 在安装了Mathematica的电脑,再安装一个叫做Mathematica Link For Excel 3.5的插件,就可以交互了. 启动Mathematica 8.0,新建一个nb文件,输入以下代码: In[17]:= Needs["ExcelLink`"] In[18]:= ExcelInstall[Visible ->

Python之Excel操作

Python的Excel操作需要另外下载安装对应Python版本的xlrd和xlwt包,用于对Excel的读取和写入. 安装方法:直接解压后,在字符命令界面cd到setup.py的目录,执行命令"Python setup.py install"即可. xlrd(下面有些是方法,有些是属性,属性后面不加括号) 1. excel = xlrd.open_workbook(excel_path):打开指定路径的Excel文件,得到对应Excel的Excel对象(整个Excel文件的对象).

Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解

?? 上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存

Windows DIB文件操作详解-4.使用DIB Section

前面讲了为了提高DIB的显示性能和效率,我们将DIB转换成DDB,但是这又遇到一个问题,如果我想操作DIB的数据的话,显然是不能使用DDB:一是因为DIB转DDB时发生了颜色转换,再就是DDB无法直接提取指定像素点的数据.那么我们怎么办呢,Windows使用一种折中的方式来达到这一目标(既提高了显示效率和性能,又可以直接操作像素点). 1.DIB Section存储和显示 Windows使用DIB块(DIB Section)来存储DIB数据,其内存结构示意图如下 其实,和我们自己读入DIB数据到

Python中time模块详解

在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. 在开始之前,首先要说明这几点: 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平台可能有所不同. UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST

python中threading模块详解(一)

python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thread模块更高层的API来提供线程的并发性.这些线程并发运行并共享内存. 下面来看threading模块的具体用法: 一.Thread的使用 目标函数可以实例化一个Thread对象,每个Thread对象代表着一个线程,可以通过start()方法,开始运行. 这里对使用多线程并发,和不适用多线程并发做