python - excel文件操作

下载相应的第三方库

进入下载的python文件夹下面,找到Scripts文件夹,在文件路径那里输入cmd
在这里插入图片描述
在命令提示符中输入:pip install xlwt 然后回车,等待下载状态为sucess就代表成功了。pip install xlrdpip install openpyxl执行同样的操作。我们可以通过pip list查看都下载了那些第三方库。如果想要下载指定版本的第三方库,可以使用pip install xlrd==版本号的命令。

可能会遇到的问题 - pip的升级问题

参考我的这一篇文章来解决问题:pip upgrade出错
这些第三方库下载好了之后,就可以开始使用了。

xlwt库 - 写入.xls文件

1,导包 import xlwt
2、创建一个对象 book = xlwt.Workbook(encoding=‘utf-8’)
3、添加一个sheet工作表 sh1 = book.add_sheet(“sheet name”)
4、添加内容
(1):给每个单元格添加值,单元格行和列分别从0开始
sh1.write(0,0,‘username’)
sh1.write(0,1,‘password’)
(2):给每一行添加值
row2 = [‘zhangdan’,‘123456’]
for i in range(len(row2)):
sh1.write(1,i,row2[i])
5、保存文件 book.save(文件名.xls)
注意:xlwt无法对已存在文件操作,它是会自己创建一个文件,然后写入数据。

# eg:在一个xls文件中写入一些数据,并保存为user.xls
import xlwt
book = xlwt.Workbook(encoding='utf-8')
sh1 = book.add_sheet("user_pwd")
sh1.write(0,0,'username')
sh1.write(0,1,'password')
row2 = ['zhangsan','123456']
for i in range(len(row2)):
    sh1.write(1,i,row2[i])
# 一次性加入多条数据
row_n = [['lisi','acb123'],['lisi1','xyz123'],['lisi2','qwe123'],['lisi3','asd123'],['lisi4','rty123']]
for i in range(len(row_n)):
    print(row_n[i])
    for j in range(len(row_n[i])):
        sh1.write(2+i,j,row_n[i][j])
book.save('user.xls')

运行结果:
在这里插入图片描述

xlrd库 - 读取.xls xlsx格式

1、导包 import xlrd
2、打开一个文件(.xls .xlsx)book = xlrd.open_workbook(‘file name.xls’)
3、使用sheet工作表
sh1 = book.sheet_by_name(‘sheet name’) 使用sheet名
sh1 = book.sheet_by_index(0) 使用下标
4、读取sheet工作表的属性信息
print(“sheet名称:”, sh1.name)
print(“sheet总行数:”, sh1.nrows)
print(“sheet总列数:”, sh1.ncols)
5、读取sheet工作表存储的文本内容
读取一行 row1 = sh1.row_values(0)
读取一列 col1 = sh1.col_values(0)
读取一个单元格
cell1 - sh1.cell_value(0,0)
cell2 = sh1.cell(0,1).value

# eg:读取user.xls中的工作表名,总行数、总列数以及存储的数据
import xlrd
book1 = xlrd.open_workbook('user.xls')
sh1 = book1.sheet_by_name('user_pwd')
print("sheet name",sh1.name)
print("sheet rows num:",sh1.nrows)
print("sheet cols num:", sh1.ncols)
row1 = sh1.row_values(0)
row2 = sh1.row_values(1)
print("第一行:",row1)
print("第二行:",row2)
col1 = sh1.col_values(0)
col2 = sh1.col_values(1)
print("第一列:",col1)
print("第二列:",col2)
cell1 = sh1.cell_value(0,0)
cell2 = sh1.cell(0,1).value
print("第一个单元格:",cell1)
print("第二个单元格:",cell2)

运行结果:
在这里插入图片描述

# 以行的方式读取,所有的内容
print("======以行的方式读取结果:======")
for i in range(sh1.nrows):
    print(sh1.row_values(i))

运行结果:
在这里插入图片描述

# 以列的方式读取,所有的内容
print("======以列的方式读取结果:======")
for i in range(sh1.ncols):
    print(sh1.col_values(i))

运行结果:
在这里插入图片描述

# 以单元格的方式读取,所有的内容
print("======以单元格的方式读取结果:======")
for i in range(sh1.nrows):
    for j in range(sh1.ncols):
        print(sh1.cell_value(i,j))

运行结果:
在这里插入图片描述

openpyxl库 - 写入.xlsx文件

1、导包 import openpyxl
2、方式1:打开文件,使用第一个sheet工作表
打开一个文件 book = openpyxl.load_workbook(‘文件名’)
使用sheet工作表
sheet = book.get_sheet_by_name('sheet name")
sheet = book.active 默认第一个sheet表
3、方式2:创建一个新的wrokbook对象,新建工作表
创建一个新的wrokbook对象 wb = openpyxl.Workbook()
新建工作表 sheet = wb.create_sheet([index = 0, title = ‘first sheet’])
4、读取sheet工作表的属性信息
worksheet对象的title属性返回这个工作表的表名:sheet.title
worksheet对象的max_row属性返回这个工作表的最大行数:sheet.max_row
worksheet对象的max_column属性返回这个工作表的最大列数:sheet.max_column
5、写入内容
单元格写入 sh1[‘F2’] = ‘pass’ 或者 sh1.cell(3,6).value = ‘Fail’ 行和列的索引值是从1开始的
整行写入 new_row = [‘post-xml接口’],‘post’,‘https://…’]
sh1.append(new_row)
6、保存文件 book.save(‘文件名.xlsx’)

# eg:新建student.xlsx,并写入数据:sno、sname、sclass、'001','zs','10001'、、、、、、
import openpyxl
book = openpyxl.load_workbook('student.xlsx')
sheet = book.active
# 单元格写入
sheet['A1'] = 'sno'
sheet['B1'] = 'sname'
sheet['C1'] = 'sclass'
sheet.cell(2,1).value = '001'
sheet.cell(2,2).value = 'zs'
sheet.cell(2,3).value = '10001'
# 整行写入
row3 = ['002','ls','10001']
sheet.append(row3)
# 多行一次性写入
student_data = [['003','we','10002'],['004','we1','10003'],['004','we4','10002'],['005','we3','10005'],['005','we5','10005'],['006','we7','10002']]
for i in range(len(student_data)):
    print(student_data[i])
    sheet.append(student_data[i])
print("sheet title:",sheet.title)
print("sheet max row:",sheet.max_row)
print("sheet max col:",sheet.max_column)
book.save('student.xlsx')

运行结果:
在这里插入图片描述
在这里插入图片描述

openpyxl库 - 读取.xlsx文件

1、导包 import openpyxl
2、打开一个文件 book = openpyxl.load_workbook(‘文件名’)
3、使用sheet工作表
sheet = book.get_sheet_by_name('sheet name")
sheet = book.active 默认第一个sheet表
4、读取内容
按行读取
for row in sheet.iter_rows(min_row = 1, max_row = 3):
for cell in row:
print(cell.value, end = ‘\t’)
print()
按列读取
for row in sheet.iter_rows(min_col = 1, max_col = 3):
for cell in row:
print(cell.value, end = ‘\t’)
按单元格读取 cell1 = sh1[‘A1’].value 或者 cell2 = sh1.cell(1,2).value

# 读取student.xlsx文件中的数据
import openpyxl
book = openpyxl.load_workbook('student.xlsx')
sheet = book.get_sheet_by_name('Sheet1')
# 按行读取
print("====按行读取====")
for i in sheet.iter_rows(min_row = 1, max_row = 10):
    for cell in i:
        print(cell.value, end = '\t')
    print()
# 按列读取
print("=====按列读取======")
for i in sheet.iter_cols(min_col = 1, max_col = 3):
    for cell in i:
        print(cell.value, end='\t')
    print()
# 按单元格读取
print("====按单元格读取====")
for i in range(1,sheet.max_row):
    for j in range(1,sheet.max_column):
        print(sheet.cell(i,j).value)

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值