一、xlrd获取文件内容
import xlrd#导入xlrd库
1.打开Excel文件
wb = xlrd.open_workbook('files/data1.xls')
2.获取所有工作表的表名# 工作簿.sheet_names()
names = wb.sheet_names()
print(names)#['students', 'teacher', 'data2']
3.获取工作表
1)获取所有的工作表: 工作簿.sheets()
all_sheet = wb.sheets()
print(all_sheet)#[Sheet 0:<students>, Sheet 1:<teacher>, Sheet 2:<data2>]
2)获取一个工作表:
# 工作簿.sheet_by_name(表名)
# 工作簿.sheet_by_index(下标)
stu_sheet = wb.sheet_by_name('students')
print(stu_sheet)#Sheet 0:<students>
tea_sheet = wb.sheet_by_index(1)
print(tea_sheet)#Sheet 1:<teacher>
4.获取最大行数和最大列数
行–工作表.nrows
列–工作表.ncols
m_r = stu_sheet.nrows
m_c = stu_sheet.ncols
print(m_r, m_c)#5 4
5.按行或者按列获取数据
1)按行获取数据
# 工作表.row_values(行下标) - 获取指定行对应的所有数据(行下标是从0开始的)
result = stu_sheet.row_values(3)
print(result) # ['小花', '女', 22.0, 95.0]
# 工作表.row_values(行下标, 起始列下标) - 获取指定行中指定列开始所有的数据
# 工作表.row_values(行下标, 起始列下标, 终止列下标) - 获取指定行中指定范围的所有数据(终止列下标对应的数据取不到)
result = stu_sheet.row_values(2, 1, 3)
print(result)#['男', 25.0]
2)按列获取数据
# 工作表.col_values(列下标)
result = stu_sheet.col_values(0)
print(result)#['姓名', '小明', '张三', '小花', '老王']
# 工作表.col_values(列下标, 起始行下标)
result = stu_sheet.col_values(3, 1)
print(result)#[99.0, 87.0, 95.0, 77.0]
# 工作表.col_values(列下标, 起始行下标, 终止行下标)
练习1:一行一行的获取整个学生表中所有的数据
for x in range(m_r):
print(stu_sheet.row_values(x))#从下标0开始,一行一行出现
练习2:一列一列的获取所有学生的信息
for x in range(m_c):
print(stu_sheet.col_values(x, 1))
6.获取单元格
1.单个单元格
# 1)工作表.cell(行下标, 列下标) - 获取指定位置对应的单元格对象
print(stu_sheet.cell(1, 0))#text:'小明'
# 2)单元格.value - 获取单元格中的数据
print(stu_sheet.cell(1, 2).value)#20.0
2.行的所有单元格
# 3)工作表.row(行下标) - 获取指定行中所有的单元格
result = stu_sheet.row(0)
print(result)#[text:'姓名', text:'性别', text:'年龄', text:'分数']
# 4)工作表.col(列下标) - 获取指定列中所有的单元格
result = stu_sheet.col(0)
print(result)#[text:'姓名', text:'小明', text:'张三', text:'小花', text:'老王']
二、xlwt对文件进行写操作
import xlwt#导入
1.创建Excel文件(创建工作簿)
# 注意:创建工作簿的时候不会自动创建工作表
# xlwt只能创建新的Excel,无法获取已经存在的Excel文件
wb = xlwt.Workbook()
2.添加工作表
1)工作簿.add_sheet(表名) - 在工作簿中添加指定名字对应的工作表,这个表中的单元格不能重写
sheet1 = wb.add_sheet('数据1')
2)工作簿.add_sheet(表名, cell_overwrite_ok=True) - 在工作簿中添加指定名字对应的工作表,这个表中的单元格可以重写
sheet2 = wb.add_sheet('数据2', cell_overwrite_ok=True)
3.写入数据
# 工作表.write(行下标, 列下标, 数据) - 将数据写入到指定工作表中指定位置
sheet1.write(0, 0, '名字')
sheet1.write(1, 2, 'hello')
# sheet1.write(0, 0, 'name') # 报错,因为sheet不允许重写
sheet2.write(0, 0, '名字')
sheet2.write(1, 2, 'hello')
sheet2.write(0,