linux,  python

Python操作Excel (xlrd & xlwt模块)

xlrd是用来从Excel中读写数据的,但我们通常只用它进行读操作,写操作会相对于专门写入的模块麻烦一些。其实,后面的rd可以看出是reader的缩小。

类比于xlrd的reader,那么xlwt就相对于writer,而且很纯正的一点就是它只能对Excel进行写操作。xlwt和xlrd不光名字像,连很多函数和操作格式也是完全相同。下面让我们慢慢介绍。

  • xlrd:可以对xlsx、xls、xlsm文件进行读操作且效率高
  • xlwt:主要对xls文件进行写操作且效率高,但是不能执行xlsx文件

安装与使用

pip install xlrd==1.2.0           #版本过高会报错
pip install xlwt

xlrd常用操作详解

先准备一份Excel文件test.xlsx ,大致如下图:

1.打开Excel文件

import xlrd
workbook = xlrd.open_workbook('test.xlsx')

2.查看工作簿中所有sheet

import xlrd
workbook = xlrd.open_workbook('test.xlsx')
print(workbook.sheet_names())

3.选择某一个工作表sheet

import xlrd
workbook = xlrd.open_workbook('test.xlsx')
# sheet=workbook.sheets()[0]  # 获取第一个工作表
# sheet=workbook.sheet_by_index(0) # 通过索引获取第一个工作表
sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取

4. 获取表格的行数和列数

import xlrd
workbook = xlrd.open_workbook('test.xlsx')
sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取

row=sheet.nrows
col=sheet.ncols
print("行数:%s,列数:%s"%(row,col))

5.获取整行和整列的值

import xlrd
workbook = xlrd.open_workbook('test.xlsx')
sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取

row1 = sheet.row_values(0)   # 0代表第一行,以此类推
col1 = sheet.col_values(0)   # 0代表第一列,以此类推
print("第一行内容:",row1)
print("第一列内容:",col1)

6.通过循环读取表格的所有行

import xlrd
workbook = xlrd.open_workbook('test.xlsx')
sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取

for i in range(sheet.nrows):
    print (sheet.row_values(i))

7.通过循环读取表格的所有列

import xlrd
workbook = xlrd.open_workbook('test.xlsx')
sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取

for i in range(sheet.ncols):
    print (sheet.col_values(i))
8.获取单元格的值
import xlrd
workbook = xlrd.open_workbook('test.xlsx')
sheet=workbook.sheet_by_name('openpyxl测试') # 通过工作表的名字获取

cell1=sheet.row(0)[0].value   # 通过调取指定行数据进行筛选
cell2=sheet.cell(0,0).value   # 通过二维的形式获取,即(第i行,第j列)形式
cell3=sheet.col(0)[0].value   # 通过调取指定列数据进行筛选

print(cell1,cell2,cell3)

xlwt常用操作详解

1.新建一个Excel文件

import xlwt
workbook = xlwt.Workbook('test2.xlsx')

2.新建一个工作表

import xlwt
workbook = xlwt.Workbook('test2.xlsx')
sheet = workbook.add_sheet('测试',cell_overwrite_ok=True)

3.写入数据到指定单元格

import xlwt
workbook = xlwt.Workbook('test2.xlsx')
sheet = workbook.add_sheet('测试',cell_overwrite_ok=True)

sheet.write(0,0,'Python')

4.保存文件

import xlwt
workbook = xlwt.Workbook('test2.xls')
sheet = workbook.add_sheet('测试',cell_overwrite_ok=True)

sheet.write(0,0,'Python')
workbook.save('test2.xls')

5.改变样式

import xlwt
workbook = xlwt.Workbook('test2.xls')
sheet = workbook.add_sheet('测试',cell_overwrite_ok=True)

style=xlwt.XFStyle()
font=xlwt.Font()
font.name='name Times New Roman'
font.bold=True
style.font=font
sheet.write(0,1,'Python',style)
#第一行代码是初始化样式,可以认为是一个类似于父类的东西。
#第二行代码是为样式创建字体
#第三行代码是指定字体的名字,这里用到的是name Times New Roman这个类型。
#第四行代码是字体加粗,以布尔值的形式的设定。
#第五行代码是将font设定为style的字体
#第六行代码是写入文件单元格时怎么运用这个格式。

workbook.save('test2.xls')

留言

您的电子邮箱地址不会被公开。 必填项已用 * 标注