Python之Excel自动化处理(三)

server/2024/12/28 9:36:32/

excel数据拆分-xlrd" style="background-color:transparent;">一、Excel数据拆分-xlrd

image-20220311110239991

1.1、代码

import xlrd
from xlutils.copy import copydef get_data():wb = xlrd.open_workbook('./base_data/data01.xlsx')sh = wb.sheet_by_index(0)'''{a: [{},{},{}],b:[{},{},{}],c:[{},{},{}],}'''all_data = {}for r in range(sh.nrows):d = {'type':sh.cell_value(r,1),'name':sh.cell_value(r,2),'count':sh.cell_value(r,3),'price':sh.cell_value(r,4)}key = sh.cell_value(r,0)if all_data.get(key):all_data[key].append(d)else:all_data[key] = [d]return all_data
def save(data):wb = xlrd.open_workbook('./base_data/data01.xlsx')wb2 = copy(wb)for key in data.keys():temp_sheet = wb2.add_sheet(key)for i, d in enumerate(data.get(key)):temp_sheet.write(i,0,d.get('type'))temp_sheet.write(i,1,d.get('name'))temp_sheet.write(i,2,d.get('count'))temp_sheet.write(i,3,d.get('price'))wb2.save('./create_data/06_表格的拆分.xlsx')if __name__ == "__main__":all_data = get_data()# save(all_data)print(all_data)

excel读取数据-openpyxl" style="background-color:transparent;">二、Excel读取数据-openpyxl

image-20220311110906745

Python操作Excel的一个常用库openpyxl,openpyl是第3方模块库,可以方便的对excel执行读取与写入操作

2.1、安装

pip install openpyxl

2.2、常用方法与属性

函数名&属性含义
openpyxl.load_workbook(path)加载Excel文件
workbook.active激活第1个工作薄
workbook[name]获取根据名字工作薄
workbook.get_sheet_by_name(name)获取根据名字工作薄
workbook.sheetnames获取所有工作薄名字
sheet.title获取工作薄名字
sheet.max_row获取行数
sheet.max_column获取列数
sheet.cell(row,col)获取指定单元格
sheet[cell_name]获取指定单元格,例如:C2
sheet[col/row_name]获取整行或整列单元格:填写num为整行,row_name为整列
sheet[col:col]获取指定范围整行单元格
sheet[cell_name:cell_name]获取指定范围单元格
sheet.iter_rows(min_row =0 , max_row =0, min_col =0, max_col =0)获取指定范围单元格
sheet.rows获取所有行
sheet.columns获取所有列
cell.value获取单元格的值

2.3、代码

# pip install openpyxl
def open():from openpyxl import load_workbookwb = load_workbook('./base_data/data01.xlsx')# 获取工作薄sh1 = wb.activesh2 = wb['Sheet1']sh3 = wb.get_sheet_by_name('Sheet1')print(sh1 is sh2 is sh3)def show_sheets():from openpyxl import load_workbookwb = load_workbook('./base_data/data01.xlsx')print(wb.sheetnames)for sh in wb:print(sh.title)def get_one_value():from openpyxl import load_workbookwb = load_workbook('./base_data/data01.xlsx')sh1 = wb.activevalue1 = sh1.cell(2,3).valuevalue2 = sh1['c2'].valueprint(value1,value2)def get_many_value():from openpyxl import load_workbookwb = load_workbook('./base_data/data01.xlsx')sh1 = wb['Sheet1']# 切片cells1 = sh1['c2':'d3']# print(cells1)# 整行,整列cell_row3 = sh1[3]cell_col3 = sh1['c']print(cell_row3)print(cell_col3)cell_row3_5 = sh1[3:5]print(cell_row3_5)# 通过迭代获取数据# for row in sh1.iter_rows(min_row =2 , max_row =5, max_col =3):#   for cell in row:#     print(cell.value)for row in sh1.iter_rows(min_row =2 , max_row =5, min_col =2, max_col =4):for cell in row:print(cell.value)
def get_all_data():from openpyxl import load_workbookwb = load_workbook('./base_data/data01.xlsx')sh1 = wb['Sheet1']for row in sh1.rows:for cell in row:print(cell.value)for column in sh1.columns:for cell in column:print(cell.value)def get_num():from openpyxl import load_workbookwb = load_workbook('./base_data/data01.xlsx')sh1 = wb['Sheet1'] print(sh1.max_row)print(sh1.max_column)
if __name__ == "__main__":# open()# show_sheets()# get_one_value()# get_many_value()# get_all_data()get_num()

excel写入数据-openpyxl" style="background-color:transparent;">三、Excel写入数据-openpyxl

image-20220311111233005

3.1、常用方法与属性

函数名&属性含义
Workbook()创建Excel文件
workbook.create_sheet(name,<num>)在指定位置创建sheet表
cell.value获取单元格值,也可直接赋值
cell.font获取字体样式,也可直接赋值
cell.alignment获取单元格内容位置,也可直接赋值
openpyxl.styles.Font()创建字体样式
openpyxl.styles.Alignment()创建单元格内容位置样式
sheet.row_dimensions[num].height设置指定行高度
sheet.column_dimensions[col_name].width设置指定列宽度

3.2、代码

from openpyxl import Workbook
def create_excel():# 创建excelwb = Workbook()# 激活第1个工作薄ws1 = wb.active# 创建工作薄ws2 = wb.create_sheet('数据')# 在指定位置创建工作薄、ws3 = wb.create_sheet('人员',0)# 保存数据wb.save('./create_data/09_创建excel文件.xlsx')def set_value1():# 创建excelwb = Workbook()# 激活第1个工作薄ws1 = wb.active# 写入数据ws1['A1'] = 'Hello'ws1['B2'] = 'Excel'ws1['C3'] = 'Python'# 保存数据wb.save('./create_data/10_创建excel文件_写入数据.xlsx')
def set_value2():# 创建excelwb = Workbook()# 激活第1个工作薄ws1 = wb.active# 需要写入的数据data = ['Hello','Excel','Python']for i,d in enumerate(data):ws1.cell(i+1,i+1).value = d # 注意 openpyxl里面 记数是从1开始# 保存数据wb.save('./create_data/11_创建excel文件_写入数据2.xlsx')def set_value3():# 创建excelwb = Workbook()# 激活第1个工作薄ws1 = wb.active# 需要写入的数据data = ['Hello','Excel','Python']# 把数据追加到工作薄ws1.append(data)# 保存数据wb.save('./create_data/12_创建excel文件_写入数据3.xlsx')
if __name__ == '__main__':# create_excel()# set_value1()# set_value2()set_value3()


http://www.ppmy.cn/server/137295.html

相关文章

QT——TCP网络调试助手

一.项目概述 学习QTcpServer学习QTcpClicent学习TextEdit特定位置输入的文字颜色学习网络通信相关知识点 二.开发流程 1.首先我们实现当用户选择不同协议类型时不同的UI组件如何切换 绑定信号&QComboBox::currentIndexChanged与QComBobox组件&#xff0c;当QComboBox组件的…

2024 Rust现代实用教程:1.3获取rust的库国内源以及windows下的操作

文章目录 一、使用Cargo第三方库1.直接修改Cargo.toml2.使用cargo-edit插件3.设置国内源4.与windows下面的rust不同点 参考 一、使用Cargo第三方库 1.直接修改Cargo.toml rust语言的库&#xff1a;crate 黏贴至Cargo.toml 保存完毕之后&#xff0c;自动下载依赖 拷贝crat…

AI智能语音机器人打电销为企业带来了哪些变化

在过去的几十年&#xff0c;电话销售已经成为了很多公司的一种核心营销方式。无论是大型客户服务中心还是小型公司&#xff0c;电销行业的存在和发展都是十分必要的&#xff0c;但是随着科技的发展&#xff0c;人们已经开始寻找一些替代方式帮助他们更好地完成电销业务。其中最…

前端vue2迁移至uni-app

1.确定文件存放位置 components: 继续沿用 pages: views内容移动到pages static: assets内容移动到static uni_modules: uni-app的插件存放位置 迁移前 src├─assets│ └─less├─components│ ├─common│ │ ├─CommentPart│ │ └─MessDetail│ ├─home│…

unity中预制体的移动-旋转-放缩

unity中预制体的移动-旋转-放缩 左上侧竖栏图标介绍Tools(手形工具)Move Tool(移动工具&#xff0c;单位米)Rotate Tool(旋转工具&#xff0c;单位角度)Scale Tool(缩放工具&#xff0c;单位倍数)Rect Tool(矩形工具)Transform Tool(变换工具)图标快捷键对照表工具使用的小技巧…

笔记本双系统win10+Ubuntu 20.04 无法调节亮度亲测解决

sudo add-apt-repository ppa:apandada1/brightness-controller sudo apt-get update sudo apt-get install brightness-controller-simple 安装好后找到一个太阳的图标&#xff0c;就是这个软件&#xff0c;打开后调整brightness&#xff0c;就可以调整亮度&#xff0c;可…

conda激活环境失败

报错内容 # >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<Traceback (most recent call last):File "D:\app\An…

【Postfix】Docker Postfix中继服务的实践与优化

Microsoft 正在积极地将 Office 365 和 Microsoft 365 用户从传统的基础认证&#xff08;Basic Authentication&#xff09;迁移到更为先进的安全措施。这其中&#xff0c;SMTP AUTH 这种曾经广泛使用的身份验证方式&#xff0c;如今正逐渐走向历史舞台的边缘。针对新创建的租户…