首先你需要安装 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。