python给excel排序_python大佬养成计划----excel操作

namedtuple新型数据类型

Python中存储系列数据,比较常见的数据类型有list,除此之外,还有tuple数据类型.tuple元组的item只能通过index访问,collections模块的namedtuple子类不仅可以使用item的index访问item,还可以通过item的name进行访问。可以将namedtuple理解为c中的struct结构,其首先将各个item命名,然后对每个item赋予数据。

from collections import namedtuple

#python自带namedtuple使用说明

#def namedtuple(typename, field_names, *, verbose=False, rename=False, module=None):

# - typename: 元组名称

# - field_names : 元组中元素的名称

# - rename: 如果元素名称中包含python关键字, 必须设置rename=True

Info = namedtuple('Users',['name','age','college'])

userone = Info('sheen',16,'xupt')

print(userone,type(userone))

print(userone.name)

bVbgPva?w=1806&h=849

openyxl模块

是python的第三方库,对xlsx格式的Excel文档进行操作

Excel基本信息

工作薄(workbook)

工作表(sheet)

活动表(active sheet)

行(row): 1,2,3,4,5,6.......

列(column): A,B,C,D........

单元格(cell): B1, C1

python与excel

import openpyxl

#1.加载excel文档

workbo = openpyxl.load_workbook("example.xlsx")#

all_sheet = workbo.sheetnames #显示所有的工作表,['Sheet1', 'Sheet2', 'Sheet3', 'Sheet4']

active_sheet = workbo.active #显示活动表,

#2.选择要操作的工作表

sheet = workbo['Sheet1'] #选择要操作的工作表

title_sheet = sheet.title #获取工作表名称,Sheet1

#3.查看指定的单元格信息

cell_b1 = sheet.cell(row=1,column=2) #查找指定单元格信息,返回一个对象,

value_b1 = cell_b1.value #查看指定单元格内容,17

#4.获取工作表的行数和列数

max_row = sheet.max_row #获取工作表行数

max_column = sheet.max_column #获取工作表列数

#5.修改工作表信息和单元格信息

sheet.title = 'family_info' #修改工作表的标题

sheet['B1'] = 100 #修改单元格值

#6.访问所有单元格信息

info_row = sheet.rows #返回的是一个生成器,

for row in info_row: #遍历工作表,拿出每一个值

for column in row:

print(column.value,end=' ')

print()

#7.保存修改信息

workbo.save(filename='modify.xlsx')

bVbgP3o?w=1443&h=742

bVbgPQR?w=1880&h=861

bVbgPRv?w=1430&h=716

excel再排序

根据表格内容再次排序,并保存到新的文件中

# 需求:

# 商品名称 商品价格 商品数量

# - 定义一个函数, readwb(wbname, sheetname=None)

# - 如果用户指定sheetname就打开用户指定的工作表, 如果没有指定, 打开active sheet;

# - 根据商品的价格进行排序(由小到大), 保存到文件中;商品名称:商品价格:商品数量

import openpyxl

def readwb(wbname,sheetname=None):

workbo = openpyxl.load_workbook(wbname)

if not sheetname:

sheet = workbo.active

else:

sheet = sheetname

wb_info = []

for row in sheet.rows:

row_info = [val.value for val in row]

wb_info.append(row_info)

return sorted(wb_info,key=lambda item:item[1])

def save_to_excel(data,wbname,wbsheet='Sheet1'):

workbo = openpyxl.Workbook()

sheet = workbo.active

for row_index,row in enumerate(data):

for column_index,cell_value in enumerate(row):

sheet.cell(row=row_index+1,column=column_index+1,value=cell_value)

workbo.save(wbname)

excel_info = readwb('Book1.xlsx')

save_to_excel(excel_info,'Book1_modify.xlsx')

bVbgP25?w=1428&h=743

bVbgP3e?w=1444&h=733

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值