Python之Excel自动化处理(三)

一、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

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

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.rhkb.cn/news/458205.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css知识点梳理2

1. 选择器拓展 在 CSS 中&#xff0c;可以根据选择器的类型把选择器分为基础选择器和复合选择器&#xff0c;复合选择器是建立在基础选择器之上&#xff0c;对基本选择器进行组合形成的。 ​ 复合选择器是由两个或多个基础选择器&#xff0c;通过不同的方式组合而成的&#xf…

《a16z : 2024 年加密货币现状报告》解析

加密社 原文链接&#xff1a;State of Crypto 2024 - a16z crypto译者&#xff1a;AI翻译官&#xff0c;校对&#xff1a;翻译小组 当我们两年前第一次发布年度加密状态报告的时候&#xff0c;情况跟现在很不一样。那时候&#xff0c;加密货币还没成为政策制定者关心的大事。 比…

服务器数据恢复—EXT3文件系统下邮件数据被误删的数据恢复案例

服务器数据恢复环境&#xff1a; 邮件服务器中有一组由8块盘组成的RAID5阵列, 上层是Linux操作系统EXT3文件系统。 服务器故障&#xff1a; 由于误删除导致文件系统中的邮件数据丢失。 服务器数据恢复过程&#xff1a; 1、将故障服务器中所有硬盘做好标记后取出&#xff0c;硬…

Python实现Android设备录屏功能及停止录屏功能

1、功能概述&#xff1f; 提供源码下载 之前通过ADB命令实现了实时的录屏功能。但是很遗憾&#xff0c;虽然通过adb命令录屏非常方便&#xff0c;但由于权限限制&#xff0c;无法在安卓系统较高的设备上使用。现选择使用另一开源工具来解决这一问题&#xff0c;并记录使用详细…

pytorh学习笔记——cifar10(六)MobileNet V1网络结构

基础知识储备&#xff1a; 一、深度可分离卷积&#xff08;Depthwise Separable Convolution&#xff09; MobileNet的核心是深度可分离卷积&#xff08;Depthwise Separable Convolution&#xff09;&#xff0c;深度可分离卷积是卷积神经网络&#xff08;CNN&#xf…

Java 基于 poi 和 itextpdf 实现 excel 转 pdf

目录 问题 实现思路 pom Excel2PDFUtil Excel2PDFUtilTest 输出结果 问题 工作中遇到一个需求&#xff0c;需要实现 excel 文件的预览&#xff0c;实现的思路就是将 excel 转成 pdf 文件&#xff0c;上传到文件服务器上得到文件地址&#xff0c;预览时只需要返回 pdf 预…

UHF机械高频头的知识和待学习的疑问

电路图如上所示&#xff1a; 实物开盖清晰图如下&#xff1a; 待学习和弄懂的知识&#xff1a; 这是一个四腔的短路线谐振。分别是输入调谐&#xff0c;放大调谐&#xff0c;变频调谐和本振 第一个原理图输入为75欧&#xff08;应该是面向有同轴线的天线了&#xff09;如下图…

【vue+leaflet】自定义控件(五)

老规矩, 一健三连, 先赞后看 先看效果图 自定义控件: 支持和自带控件有相同的增删改查功能, 处理与自带控件来回切换,互相使用的部分问题 新建一个组件 imgControl.vue 1, html 没什么东西,就一个div盒子装leaflet图层 <template><div class"imgBox">…

Java | Leetcode Java题解之第513题找树左下角的值

题目&#xff1a; 题解&#xff1a; class Solution {public int findBottomLeftValue(TreeNode root) {int ret 0;Queue<TreeNode> queue new ArrayDeque<TreeNode>();queue.offer(root);while (!queue.isEmpty()) {TreeNode p queue.poll();if (p.right ! nu…

Cursor的composer和chat的应用

提到 Cursor 就不得不提及它的 Composer 功能。“Composer” 的中文释义为 “作曲家”&#xff0c;在此处它有着特定的含义。 Cursor 提供了两种人机对话方式。一种是 Chat&#xff0c;它与 ChatGPT 之类的工具差别不大。另一种则是强大的 Compose。 在编写程序时&#xff0c…

基于GA遗传优化的风光储微电网削峰填谷能量管理系统matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 削峰填谷的基本概念与意义 4.2 GA优化 5.完整工程文件 1.课题概述 基于GA遗传优化的风光储微电网削峰填谷能量管理系统matlab仿真。通过遗传算法优化风光储微电网的充放电控制过程&#xff0c;然后…

配置smaba (Linux与windows通信)

在Ubuntu上安装Samba是一个简单的过程。以下是详细的步骤&#xff0c;帮助你从安装到基本配置。 步骤1&#xff1a;更新软件包列表 首先&#xff0c;打开终端&#xff0c;确保你的软件包列表是最新的&#xff1a; sudo apt update 步骤2&#xff1a;安装 Samba 接下来…

项目部署 —— 前端、后端

一、 前端 ● 二号标题 在命令框里输入 npm run build 打包成功&#xff1a; 项目就会出现一个 dist 文件夹 将Linux的nginx文件夹中&#xff0c;重命名为 news 二、 后端 ● 通过maven打包后端程序 最终会在项目中生成一个 target 文件夹&#xff0c;将 news-1.0-SNAPSHOT.…

汇编语言

前言 汇编语言是各种CPU提供的机器指令的助记符的集合&#xff0c;可以通过汇编语言直接控制硬件系统进行工作&#xff1b; Q&#xff1a;为什么说汇编语言可以直接操作硬件&#xff1f;那么汇编过程还有什么意义呢&#xff1f; A&#xff1a;汇编语言利用助记符代替机器指令的…

Python数据分析——Numpy

纯个人python的一个小回忆笔记&#xff0c;当时假期花两天学的python&#xff0c;确实时隔几个月快忘光了&#xff0c;为了应付作业才回忆起来&#xff0c;不涉及太多基础&#xff0c;适用于有一定编程基础的参考回忆。 这一篇笔记来源于下面哔哩哔哩up主的视频&#xff1a; 一…

反编译华为-研究功耗联网监控日志

摘要 待机功耗中联网目前已知的盲点&#xff1a;App自己都不知道的push类型的被动联网、app下载场景所需时长、组播联网、路由器打醒AP。 竞品 策略 华为 灭屏使用handler定时检测&#xff08;若灭屏30分钟内则周期1分钟&#xff0c;否则为2分钟&#xff09;&#xff0c;检…

基于知识图谱的紧急事故决策辅助系统

现代社会紧急事故频发&#xff0c;而处理这些突发事件的效率直接决定了后续影响的大小。这时候&#xff0c;数据智能的解决方案会显得尤为重要&#xff01;今天为大家分享一个用【知识图谱】技术驱动的紧急事故决策辅助系统&#xff0c;不仅能帮助你快速处理事故信息&#xff0…

HarmonyOS Next API12最新版 端云一体化开发-云函数篇

一、新建一个端云一体化项目 见文章&#xff1a; HarmonyOS NEXT API12最新版 端云一体化开发-创建端云一体化项目流程_鸿蒙appapi-CSDN博客 二、官方文档 使用限制-云函数 - 华为HarmonyOS开发者 (huawei.com) Cloud Foundation Kit简介-Cloud Foundation Kit&#xff0…

1通道10GSPS或2通道5G 14 bit数字化仪

ADQ7DC是一款高端14位数据采集平台&#xff0c;旨在满足最具挑战性的测量环境。ADQ7DC特性: 单通道和双通道操作 单通道10GSPS或双通道5GSPS 7 GByte/s持续数据传输速率开放式FPGA支持实时DSP 脉冲检测固件选项波形平均固件选项 ADQ7DC数据手册 特征 单通道和双通道工作模式…

javaScript整数反转

function _reverse(number) { // 补全代码 return (number ).split().reverse().join(); } number &#xff1a;首先&#xff0c;将数字 number 转换为字符串。在 JavaScript 中&#xff0c;当你将一个数字与一个字符串相加时&#xff0c;JavaScript 会自动将数字转换为字符串…