Python对于Excel的骚操作,对于经常使用Excel的人就是神器

安装对excel操作的模块:openpyxl

1.excel中的基本定义

  • 工作簿(workbook):整个excel表哥文件称为一个工作簿
  • 工作表(sheet):一个工作簿中有多个工作表
  • 活动表(active sheet):保存文件时候停留在那个表,那个表就被称为活动表
  • 行(row): 1,2,3,4,5,6........
  • 列(column): A,B,C,D......
  • 单元格(cell); B1,C1,C5......

例子1

import openpyxl
#打开一个excel文档
wb = openpyxl.load_workbook('/home/kiosk/Desktop/student.xlsx')
print(wb)
print(type(wb))
#查看工作簿的所有工作表
print(wb.sheetnames)
#查看当前活动表
print(wb.active)
"""
运行结果:
<openpyxl.workbook.workbook.Workbook object at 0x7fd69d613278>
<class 'openpyxl.workbook.workbook.Workbook'>
['学生表', 'Sheet2', 'Sheet3']
<Worksheet "Sheet3">
"""
#选择要操作的工作表,返回工作表对象
sheet = wb['学生表']
print(wb.active)
#获取工作表的名称
print(sheet.title)
"""
运行结果:
<Worksheet "Sheet3"> #这里可以看到,活动表还是Sheet3,它并没有因为选择了其他操作的工作表而改变
学生表
"""
cell = sheet['B1']
print(cell)
print(cell.row,cell.column)
print(cell.value)
"""
运行结果:
<Cell '学生表'.B1>
1 B
张三
"""

实例2

有excel表格文件如下:

将表格数据读出,按B列的数据从小到大排序后写入文件stores.txt

import openpyxl
def readwb(wbname,sheetname=None):
 li = []
 wb = openpyxl.load_workbook(wbname)
 if not sheetname:
 sheet = wb[wb.active.title]
 else:
 sheet = wb[sheetname]
 for row in sheet.rows:
 row_li = [cell.value for cell in row]
 li.append(row_li)
 return li
s = input('请输入工作簿名字 工作表名字(默认为活动表):').split()
if len(s) == 1:
 li = readwb(s[0])
else:
 li = readwb(s[0],s[1])
li = sorted(li,key=lambda x:x[1])
with open('stores.txt','w') as f:
 for i in li:
 f.write(i[0]+':'+str(i[1])+':'+str(i[2])+'
')

结果截图

扫描二维码关注公众号,回复: 5338352 查看本文章

写在最后:

好啦!今天的文章分享就到这里。

想要获取更优质的干货、学习资料及圈内新鲜事儿,可以扫描下方二维码。

关注[速学Python],不错过圈内事。

猜你喜欢

转载自blog.csdn.net/qq_40196321/article/details/87517277