[数据采集笔记05]——数据的存储——Python Excel 读写追加写入

本文介绍了Python中用于Excel读写的xlrd, xlwt和openpyxl库,重点讲解了openpyxl的基本使用、文件读取和内容追加。xlwt用于写入xls文件,xlrd用于读取,而openpyxl不仅支持读写,还能实现对xlsx文件的内容追加。" 111998293,10493660,使用Scrapy爬取豆瓣影评与评分的实战教程,"['Python', '爬虫', '数据抓取', 'Scrapy框架', '数据分析']

1.Python Excel 读写追加写入(xlrd, xlwt, openpyxl, xlsxwriter)

首先几个第三方库进行比较:

xlrdxlwtopenpyxlXlsxWriter
介绍用来读取xls文件,是python-excel的三大模块用来写xls文件,是python-excal的三大模块可以读写XLSX、XLSM文件可以创建XLSX文件
××
×
.xls××
.xlsx××
大文件××

注释:Excel 2003 即XLS文件有大小限制即65536行256列,所以不支持大文件,而Excel 2007以上即XLSX文件的限制则为1048576行16384列


1.1. xlwt

xlwt是一个python第三方库。作用是通过python对xls文件进行写入的操作。


在xlwt中主要讲excel表格抽象成如下几个类:

工作簿 xlwt.Workbook.Workbook
工作表 xlwt.Worksheet.Worksheet

单元格 xlwt.Column.Column

import xlwt
 
book = xlwt.Workbook() # 新建工作簿
table = book.add_sheet('Over',cell_overwrite_ok=True) # 如果对同一单元格重复操作会发生overwrite Exception,cell_overwrite_ok为可覆盖
sheet = book.add_sheet('Test') # 添加工作页
sheet.write(1,1,'A') # 行,列,属性值 (1,1)为B2元素,从0开始计数
style = xlwt.XFStyle() # 新建样式
font = xlwt.Font() #新建字体
font.name = 'Times New Roman'
font.bold = True
style.font = font # 将style的字体设置为font
table.write(0,0,'Test',style)
book.save(filename_or_stream='excel_test.xls') # 保存

更多, 可以参考官方文档。

1.2. xlrd

xlrd是一个python第三方库。作用是通过python对xls文件进行读取的操作。

import xlrd 
data = xlrd.open_workbook('excel_test.xls')
print(data.sheet_names()) # 输出所有页的名称
table = data.sheets()[0] # 获取第一页
table = data.sheet_by_index(0) # 通过索引获得第一页
table = data.sheet_by_name('Over') # 通过名称来获取指定页
nrows = table.nrows # 为行数,整形
ncolumns = table.ncols # 为列数,整形
print(type(nrows))
print(table.row_values(0))# 输出第一行值 为一个列表
# 遍历输出所有行值
for row in range(nrows):
    print(table.row_values(row))
# 输出某一个单元格值
print(table.cell(0,0).value)
print(table.row(0)[0].value)

更多可以查看官方文档


1.2.openpyxl

在openpyxl 中主要讲excel表格抽象成如下几个类:

工作簿 openpyxl.workbook,workbook.WorkBook
工作表 openpyxl.worksheet.worksheet.Worksheet

单元格 openpyxl.cell.cell.Cell

一个工作簿包含多个工作表,
一个工作表包含多个单元格。

这是openpyxl中主要类, 所以只要知道这几个类, 你就可以通过方法构造和调用他们。

1.2.1.openpyxl的基本使用

import openpyxl
def test():
	"""
	测试
	"""

	#创建工作簿
	workbook = openpyxl.Workbook()
	print(type(workbook))
	#获取活跃的表格默认是第一个, 你也可以修改它的值
	sheet0 = workbook.active
    #创建工作表
    sheet1 = work.create_sheet('sheet1')
	print(type(sheet0))
	#当然我们想往sheet0 表中写入数据我们也可以在创建一个新的表sheet1
	sheet1 = workbook.create_sheet("sheet1")
	cell = shee1.cell(1,1,'你好')
	print(type(cell))
	workbook.save('test.xlsx')
    

###1.2.2. openpyxl实现文件的写

import openpyxl
def write():
	"""
	写入xlsx文件
	"""

	#创建工作簿
	workbook = openpyxl.Workbook()
	#创建一个表
	sheet1 = workbook.create_sheet('sheet1')
	#向单元格内写入数据
	for r in range(1,10):
		for c in range(1,3):
			sheet1.cell(r,c,'我是第({},{})个单元格'.format(r,c))
	#保存
	workbook.save('mywork1.xlsx') 

1.2.3. openpyxl实现文件的读取

import openpyxl

def read():
	"""
	读取xlsx文件
	"""

	#加载mywork1.xlsx。 返回的是一个WorkBook对象
	workbook = openpyxl.load_workbook('mywork1.xlsx')
	#返回该工作簿中所有工作表的名, 返回值是一个列表
	sheetnames = workbook.sheetnames

	#我们通过名字获取每一表,并读取
	for name in sheetnames:
		sheet = workbook[name]
		print("-"*30)
		print("当前表{}".format(name))
		#最大行数, 和列数
		max_row = sheet.max_row
		max_column = sheet.max_column
		
		for r in range(1, max_row+1):
			for c in range(1, max_column+1):
				cell = sheet.cell(r,c)
				print(cell.value)

现在你对openpyxl就会有了基本的了解,有这些知识足以让你去实现对xlsx进行读写操作。

当然你可以参考官方文档对openpyxl有一个更深入的了解。

1.2.4. 使用openpyxl对Excel内容追加

import openpyxl
data = openpyxl.load_workbook('excel_test.xlsx')
print(data.sheetnames) # 输出所有工作页名
# 取第一张表
sheetnames = data.sheetnames()# 返回一个列表, 包含了该工作簿中所有表的名字
table = data[sheetnames[0]]
print(table.title) # 输出表名
nrows = table.max_row # 获得行数
ncolumns = table.max_column # 获得行数
values = ['E','X','C','E','L']
for value in values:
    table.cell(nrows+1,1).value = value
    nrows = nrows + 1
data.save('excel_test.xlsx')

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值