Python 技术篇-操作excel,对excel进行读取和写入

2020-09-23 10:21:36 浏览数 (2)

首先你需要安装 xlrd 和 xlwt 这两个库,一个是读库,一个是写库。

先来说一下这两个库的局限性:

局限性一: 不能用于xlsx文件

局限性二: 写的时候不能写入已有的文件,只能重新建

解决方法:Python 技术篇-写入已存在的excel

局限性一的解决方法后续更新!

接下来给大家演示一下读写excel。

读取Excel

row是行,col是列,都是从0开始的。

sheet指的是工作表,也是从0开始的。

下面就是xlrd的常用方法:

代码语言:javascript复制
rd = xlrd.open_workbook("hello.xls")   # 打开 hello.xls 文件
sheets = rd.sheets()[0]   # 打开第一个工作表
sheets.name   # 获取工作表名
sheets.nrows   # 获取行数
sheets.ncols   # 获取列数
sheets.row_values(n)   # 读取第 n-1 行数据
sheets.col_values(n)   # 读取第 n-1 行数据
sheets.cell_value(m, n)   # 读取第 m-1 行 n-1 列单元格的数据
sheets.cell(m, n).value   # 读取第 m-1 行 n-1 列单元格的数据
sheets.row(m)[n].value   # 读取第 m-1 行 n-1 列单元格的数据

xlrd.open_workbook("Hello.xls", formatting_info = True)

open_workbook还有个可选参数,这个是打开时是否读取样式,因为只是读的话用不到样式,不读样式反而会更快,但有时候会用到。

写入Excel

下面就是xlwt的常用方法:

代码语言:javascript复制
wt = xlwt.Workbook(encoding = "utf-8")   # 新建一个 excel 设置编码为 utf-8,不然默认为ascii不能存中文
sheets = wt.add_sheets("sheet1")   # 新建一个工作表,名字是 sheet1
sheets.write(m, n, "hello")   # 设置第 m-1 行 n-1 列单元格的内容为 hello
wt.save("hello.xls")   # 保存 excel 名字是 hello.xls

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

Workbook有两个可选参数,第一个是编码,默认是ascii,即不能写中文。

第二个是 是否压缩,0代表否,1代表是,这个不常用。

wt.add_sheets("sheet1", cell_overwrite_ok = True)

add_sheets还有个可选参数,单元格是否可以被覆盖,默认是False。

0 人点赞