excel in python

栏目: Python · 发布时间: 6年前

内容简介:mac 上的安装命令扩展:其他的安装方式参见

python-excel 是一组用 python 实现的 excel 文件访问库,包括 xlrdxlwtxlutils 三个模块。这里介绍一下它的基本用法,大约需要 10 分钟阅读。

安装

mac 上的安装命令

sudo pip install xlrd
sudo pip install xlwt
sudo pip install xlutils
复制代码

扩展:其他的安装方式参见 这里

读文件

读文件示例代码如下:

# -*- coding: utf-8 -*- 

import sys  
reload(sys)  
sys.setdefaultencoding('utf8')  
import xlrd

def read_file(file_path):
	book = xlrd.open_workbook(file_path) #得到 Excel 文件的 book 对象,实例化对象
	sheet = book.sheet_by_index(0) # 通过 sheet 索引获得 sheet 对象
	ncols = sheet.ncols # 列数
	nrows = sheet.nrows # 行数
	print("row count:{:d}, column count:{:d}".format(nrows, ncols))
	for row in range(nrows):
		print(sheet.row_values(row))

if __name__ == '__main__':
	read_file("test.xls")
复制代码

当然也可以逐个 cell 地读取文件,代码如下:

# -*- coding: utf-8 -*- 

from __future__ import print_function
import sys  
reload(sys)  
sys.setdefaultencoding('utf8')  
import xlrd

def read_file(file_path):
	book = xlrd.open_workbook(file_path)
	sheet = book.sheet_by_index(0)
	ncols = sheet.ncols
	nrows = sheet.nrows
	for row in range(nrows):
		for col in range(ncols):
			print(sheet.cell_value(row, col), end='')
			print('\t', end='')
		print("")

if __name__ == '__main__':
	read_file("test.xls")
复制代码

扩展:xlrd 的 Api 文档在这里。

写文件

写文件的示例代码如下:

# -*- coding: utf-8 -*- 
import sys  
reload(sys)  
sys.setdefaultencoding('utf8')  
import xlwt

def get_data():
	data = []
	data.append(["id", "value"])
	for i in range(10):
		col_data = []
		col_data.append(i)
		col_data.append(i * 10)
		data.append(col_data)
	return data

def write_file(file_path, sheet_name, data):
	book = xlwt.Workbook(encoding = 'utf-8')
	sheet = book.add_sheet(sheet_name)
	row = 0
	for row_data in data:
		col = 0
		for cell_data in row_data:
			sheet.write(row, col, cell_data)
			col += 1
		row += 1
	book.save(file_path)

if __name__ == '__main__':
	data = get_data()
	write_file("test.xls", "test sheet", data)
复制代码

扩展:xlwt 的 Api 文档在这里。

过滤文件示例

下面这个过滤文件的示例,是 excel 文件读写的综合应用:

# -*- coding: utf-8 -*- 

import sys  
reload(sys)  
sys.setdefaultencoding('utf8')  
import xlrd
import xlwt

# 过滤掉第二列元素等于 keyword 的数据所在行
def filter_file(src_file, src_sheet_name, desc_file, desc_sheet_name, keyword):
	src_book = xlrd.open_workbook(src_file)
	src_sheet = src_book.sheet_by_name(src_sheet_name)

	desc_book = xlwt.Workbook(encoding = 'utf-8')
	desc_sheet = desc_book.add_sheet(desc_sheet_name)

	ncols = src_sheet.ncols
	nrows = src_sheet.nrows
	index = 0
	for row in range(nrows):
		content = src_sheet.cell_value(row, 1)
		if content == keyword:
			continue
		for col in range(ncols):
			desc_sheet.write(index, col, src_sheet.cell_value(row, col))
		index += 1

	desc_book.save(desc_file)	

if __name__ == '__main__':
	filter_file("test.xls", "test sheet", "test_desc.xls", "test sheet", 30)
复制代码

上述例子中的 test.xls 文件内容为:

id value
0 0
1 10
3 30
2 20
4 40
5 50
6 60
7 70
8 80
9 90

以上所述就是小编给大家介绍的《excel in python》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

流量池

流量池

杨飞 / 中信出版集团 / 2018-4 / 68.00

移动互联网时代,信息日益冗余,新闻速朽; 整体流量增长速度放缓,而竞争者数量高速增加; 流量呈现变少、变贵、欺诈频繁的现状; 品效合一的营销策略成为共识,而实现路径成为痛点; 多次开创各营销渠道效果之最的营销人、各种刷屏级营销事件操盘手、神州专车CMO杨飞,这一次倾囊相授,诚恳讲述如何实现流量获取、营销转化以及流量的运营和再挖掘。一起来看看 《流量池》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具