python表格运算_Python 对 Excel 操作用法详解

在python中,对excel表格读,写,追加数据,用以下三个模块:

1、xlrd 读取excel表中的数据

2、xlwt 创建一个全新的excel文件,然后对这个文件进行写入内容以及保存。

3、xlutils 读入一个excel文件,然后进行修改或追加,不能操作xlsx,只能操作xls。

一、读excel表

读excel要用到xlrd模块

1、导入模块 import xlrd

2、打开excel文件

table = data.sheets()[0] #通过索引顺序获取

table = data.sheet_by_index(0) #通过索引顺序获取

table = data.sheet_by_name(uSheet1)#通过名称获取

代码如下:

import xlrd

data = xlrd.open_workbook(r"C:Users907968Desktop est.xlsx")

table1 = data.sheets()[0]

table2 = data.sheet_by_index(0)

table3=data.sheet_by_name(uSheet1)

print(table1)

print(table2)

print(table3)

返回:

3、获取行数和列数

import xlrd

data = xlrd.open_workbook(r"C:Users907968Desktop est.xlsx")

table = data.sheets()[0]

nrows = table.nrows

ncols = table.ncols

print("行数:%d 列数:%d"%(nrows,ncols))

返回:

行数:13

列数:3

4、获取整行和整列的值,以列表形式返回

rows = table.row_values(0)

cols = table.col_values(0)

print("rows:%s cols:%s"%(rows,cols))

返回:

rows:[A1, B1, C1]

cols:[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13]

5、获取单元格数据

cell_A1 = table.cell_value(0,0)

cell_C4 = table.cell_value(3,2)

print("A1:%s C4:%s"%(cell_A1,cell_C4))

返回:

A1:A1

C4:C4

还可以使用行列索引来获取单元格数据

cell_A1 = table.row(0)[0].value

cell_C4 = table.col(2)[3].value

print("A1:%s C4:%s"%(cell_A1,cell_C4))

返回:

A1:A1

C4:C4

三、写excel操作

1、导入:

import xlwt

2、创建workbook

workbook = xlwt.Workbook(encoding=utf-8, style_compression=0)

encoding:设置字符编码,一般要这样设置:w = Workbook(encoding=’utf-8’),就可以在excel中输出中文了。默认是ascii

style_compression:表示是否压缩,不常用。

3、创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格

sheet = workbook.add_sheet(test, cell_overwrite_ok=True)

其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False

4、向表中添加数据

sheet.write(0, 0, EnglishName) # 其中的0-行, 0-列指定表中的单元,EnglishName是向该单元写入的内容

sheet.write(1, 0, Marcovaldo)

txt1 = 中文名字

sheet.write(0, 1, txt1)

txt2 = 马可瓦多

sheet.write(1, 1, txt2)

5、保存

workbook.save(re: est1.xls)

四、追加数据

import xlrd

import xlutils.copy

data = xlrd.open_workbook(rC:Users907968Desktop est222.xls)

ws = xlutils.copy.copy(data)

table=ws.get_sheet(0)

table.write(0,3,D1)

ws.save(rC:Users907968Desktop est222.xls)

追加前:

A1 B1 C1

追加后:

A1 B1 C1 D1

---------------------

经验分享 程序员 微信小程序 职场和发展