openpyxl操作表格的基本用法

2023-11-11

创建文件, 以及创建xlsx表格

from openpyxl import Workbook, load_workbook
import os


# 创建excel文件, 默认会有一个sheet命名的表
def create_xlsx(_path, _name):
    path_file = os.path.join(_path, _name)
    # 创建一个空白工作簿
    wb = Workbook()
    # 注意: 保存路径下含有相同文件会被覆盖,
    wb.save(path_file)


# 创建工文件, 同时创建表
def create_table(_path, _name):
    path_file = os.path.join(_path, _name)
    # 创建一个空白工作簿
    wb = Workbook()
    # 创建一个表名: sheet1, 位置再第一位
    ws = wb.create_sheet('sheet1', 0)
    ws2 = wb.create_sheet('sheet2', 1)
    # 保存文件
    wb.save(path_file)

读取表格的相关属性, 或者值

from openpyxl import Workbook, load_workbook
wb = load_workbook('work2.xlsx')
# 读取文件的所有表名
table_name = wb.sheetnames
# 根据表名获取表,
sheet_name = table_name[0]
# 读取某一个表
sheet = wb[sheet_name]
# 读取表格的某一行数据
row_data = sheet['1']
# 获取某一列数据, 获取的结果是tuple: (<Cell '订单'.A1>, <Cell '订单'.B1>)
col_data = sheet['B']
# 获取某一个单元格的数据
one_cell = sheet['B2'].value
# 获取单元格的值
cell_data = sheet.cell(row=2, column=3).value
# 修改某一个单元格的值, 最后必须要保存
sheet['B2'].value = 'hello'

读取excel数据, 结果返回: 每一行为dict, 添加到list中

def dict_key(ws):
    for row in ws.rows:
        key_value = [data.value for data in row]
        return key_value
        

# 读取文件内容以及表的内容
def read_xlsx(path_name):
    wb = load_workbook(path_name,  read_only=True)
    # 读取文件的所有表名
    table_name = wb.sheetnames
    # 根据表名获取表,
    sheet_name = table_name[0]
    _list = []
    ws = wb[sheet_name]
    key_value = dict_key(ws)
    # 遍历表格的多行数据, ws.rows: 获取表格多少行
    count = 0
    for row in ws.rows:
        count += 1
        if count == 1:
            continue
         value_list = [data.value for data in row]
        _dict = dict(zip(key_value, value_list))
        _list.append(_dict)
    return _list

表格数据增加一列数据

 name = '案例.xlsx'
    wb = load_workbook(name)
    # 读取文件的所有表名
    table_name = wb.sheetnames
    # 根据表名获取表,
    sheet_name = table_name[0]
    sheet = wb[sheet_name]
    sheet.cell(row=1, column=19, value='销售额')
    for row_index in range(2, sheet.max_row+1):
        sheet.cell(row=row_index, column=19, value=row_index)
    wb.save(name)

绘制折线图

    from openpyxl import Workbook, load_workbook
    import os
    from openpyxl.chart import BarChart, Reference, AreaChart
    wb = Workbook()
    ws = wb.active
    rows = [
        ['Number', 'Batch 1', 'Batch 2'],
        [2, 40, 30],
        [3, 40, 25],
        [4, 50, 30],
        [5, 30, 10],
        [6, 25, 5],
        [7, 50, 10],
    ]

    for row in rows:
        ws.append(row)

    chart = AreaChart()
    chart.title = "Area Chart"
    chart.style = 13
    chart.x_axis.title = 'Test'
    chart.y_axis.title = 'Percentage'
    cats = Reference(ws, min_col=1, min_row=1, max_row=7)
    data = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=7)
    chart.add_data(data, titles_from_data=True)
    chart.set_categories(cats)
    ws.add_chart(chart, "A10")
    wb.save("area.xlsx")

官方文档请看: http://yumos.gitee.io/openpyxl3.0/index.html#document-charts/introduction

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openpyxl操作表格的基本用法 的相关文章

  • Android11 热点设置永不关闭

    Android11 热点设置永不关闭 文章目录 Android11 热点设置永不关闭 一 前言 二 framework设置热点永不超时关闭 三 基于 SoftApManager java 研究超时逻辑 三 总结 1 设置热点不关闭的方法 1
  • cutlass入门: 调用cutlass做通用矩阵乘法Gemm(附代码)

    cutlass是CUDA C 模板抽象的集合 用于实现CUDA中所有级别和规模的高性能矩阵乘法 GEMM 和相关计算 相较于cuBLAS和cuDNN cutlass中包含了更多可重用的模块化软件组件 这使得cutlass相较于前两者更为灵活
  • 详细介绍InnoDB数据存储结构

    InnoDB数据存储结构 1 数据库的存储结构 页 索引结构给我们提供了高效的索引方式 不过索引信息以及数据记录都是保存在文件上的 确切说是存储在页结构中 另一方面 索引是在存储引擎中实现的 MySQL服务器上的存储引繁负责对表中数据的读取
  • 接口测试简介以及接口测试用例设计思路

    接口测试简介 1 什么是接口 接口就是内部模块对模块 外部系统对其他服务提供的一种可调用或者连接的能力的标准 就好比usb接口 他是系统向外接提供的一种用于物理数据传输的一个接口 当然仅仅是一个接口是不能进行传输的 我们还的对这个接口怎么进
  • OpenCV读取图像_显示图像和保存图像

    配置好 OpenCV 以后 包含以下两个头文件 include cv h include highgui h IplImage image cvLoadImage D 123 jpg 1 函数cvLoadImage 的第1 个参数是图像文件
  • C++中插件使用举例

    插件并不是在构建时链接的 而是在运行时发现并加载的 因此 用户可以利用你定义好的插件API来编写自己的插件 这样他们就能以指定方式扩展API的功能 插件库是一个动态库 它可以独立于核心API编译 在运行时根据需要显示加载 不过插件也可以使用
  • 左耳朵耗子:拖累开发团队效率的困局与解决之道

    作者 陈皓编辑 小智影响软件开发团队效率的因素有许多 产品和业务上的效率问题固然是根本 但很多时候 这种问题并没有解 如果只从软件开发的过程出发 哪些开发方式是典型 又该怎么解呢 写在前面 我之前写过一篇叫 加班与效率 的文章 从概念上说了
  • outlook中打开链接时收到错误信息

    http helpdesk blog 51cto com 219783 233525 症状 outlook中打开链接时收到错误信息 一般性错误 http 找不到应用程序 原因 IE非默认浏览器 解决方法 打开任意文件夹 工具 文件夹选项 文
  • 【python】—— python的基本介绍并附安装教程

    前言 今天 我将给大家讲解关于python的基本知识 让大家对其有个基本的认识并且附上相应的安装教程以供大家参考 接下来 我们正式进入今天的文章 目录 前言 一 Python 背景知识 二 Python 都能干啥 三 Python的优缺点
  • 判断一个数是否为素数之费马测试

    费马测试被称为概率性素性测试 它判断的是 某个数是素数的概率大不大 如果P为素数 那么所有比P小的数Q都满足公式 QP mod P Q 即 例素数5的性质 比素数5小的数有4 3 2 1 那么 45 45 1024 mod 5 4 35 3
  • 电脑性能,如何提高电脑性能 方法介绍【图文教程】

    在这个信息传播飞速的当下 网络是人们必不可少的传播工具 网络传播信息的途径就是通过电脑 电脑如今已经是每家每户的宠儿了 几乎每个人都有自己的电脑 然而电脑与电脑之间也有差异 它们最大的不同就是性能方面 影响性能的主要因素是硬件 当然还有其它
  • C#学习教程六

    C 异常机制具有如下的特征 1 所有异常必须用System Exception类或者从System Exception派生的类实例来标识 2 可以使用fianlly块编写在正常执行或异常情况下都要执行的终止代码 3 系统级的异常如移除 被零
  • keepalived双主模式(互为主备)

    考虑到keepalived高可用 备节点的机器基本上属于空闲状态 很浪费硬件资源 所以我们可以让keepalived互为主备 跑多个实例 第一个节点配置 vim etc keepalived keepalived conf global d
  • Qt中Udp通信、Udp广播和组播(QT七)

    目录 一 UDP通信 1 Qt中udp通信QUdpSocket 1 发送端 2 接收端 2 Udp通信广播 1 app端UdpApp 2 控制器端UdpControl 3 Udp通信组播 1 组播发送端 2 组播接收端 3 如果要接收组播数
  • 华为服务器bios中修改磁盘格式,华为服务器设置bios

    华为服务器设置bios 内容精选 换一换 通过在BIOS中设置一些高级选项 可以有效提升虚拟化平台性能 表1列出了TaiShan服务器和性能相关的BIOS推荐配置项 开启CPU预取配置选项的目的在于CPU先行提取下一段指令以提高系统效能 在
  • pthread的互斥量和自旋锁

    一 自旋锁与互斥量的区别 在多处理器环境中 自旋锁最多只能被一个可执行线程持有 如果一个可执行线程试图获得一个被争用 已经被持有的 自旋锁 那么该线程就会一直进行忙等待 自旋 也就是空转 等待锁重新可用 如果锁未被争用 请求锁的执行线程便立
  • Vue3安装配置、开发环境搭建(组件安装卸载)(图文详细)

    Vue3安装配置 开发环境搭建 组件安装卸载 图文详细 本文目录 一 vue的主要安装使用方式 二 node js安装和配置 1 支持运行 Node js的平台 2 Node js 版本开发发布时间表 日期可能会有变化 3 下载安装node
  • qt5.15 快速安装 国内源

    1 qt5 15 安装问题 最大的问题就是需要在线下载与安装 即使挂了科学上网 国外的服务器下载速度也还是超级慢 在网上找了各种解决办法后 终于找到一个快速下载安装的办法 2 安装器下载 阿里源 清华源都没有Windows的安装器了 在腾讯
  • 机器学习实战——第五章(分类):Logistic回归

    前言 首先感谢博主 Jack Cui 主页 http blog csdn net c406495762 Logistic回归博文地址 https blog csdn net c406495762 article details 777233

随机推荐

  • 分布式系统服务器要求,浅谈分布式系统

    分布式系统的由来 软件系统的架构一直以来随着技术的发展和市场的需求进行着不断的演进 最初 各行业业务相对比较简单 对系统的要求也不高 软件系统的架构均采用单一应用架构 此时单台服务器即可满足系统的要求 之后 随着业务的发展 对系统的要求不断
  • Codeblocks的安装与配置

    Hello 大家好 欢迎大家来到编程世界 从现在开始 我将和大家一起走进代码王国 既然我们出来混社会 哦不 是来新世界闯荡 我们至少应该先选一把 神兵利器 来防身嘛 在一些高校的电脑室里 你可能会看见下面这款经典软件 没错 VC 6 0 额
  • Linux redis 主从复制,从服务器一直显示master_link_status:down

    Linux redis 主从复制 从服务器一直显示master link status down 这里初步的解决方案是权限不足 切换成root 就可以解决了
  • vscode无法在只读编辑器中输入

    在设置中搜索run code config 将run in terminal打勾即可
  • 学点Selenium玩点新鲜~新的一年,让分布式测试有更多玩法

    我们都知道 Selenium 是一款在 Web 应用测试领域使用的自动化测试工具 而 Selenium Grid 是 Selenium 中的一大组件 通过它能够实现分布式测试 能够帮助团队简单快速在不同的环境中测试他们的 Web 应用 分布
  • 详细介绍如何在linux中配置chisel环境

    一 安装java和scala 1 安装java 安装java sudo apt install openjdk 11 jre headless 安装javac sudo apt install openjdk 11 jdk headless
  • ubuntu 18.04 RTX2080(ti) --- tensorflow-gpu + cuda9.0 + cudnn-9.0 (ubuntu 16.04, TITAN XP)

    0 下载display driver cuda和cudnn RTX2080 Display Driver cuda cudnn 版本对应关系 1 禁止系统默认的显卡驱动 打开系统黑名单 sudo gedit etc modprobe d b
  • C++11新特性,推荐使用emplace_back()替换push_back()的原因

    TOC c 11新加入了emplace back 用来替换push back 在平时我们习惯性的尾插用push back 去完成 但是如果是尾插临时对象的话 push back 需要先构造临时对象 再将这个对象拷贝到容器的末尾 而empla
  • mmsegmentation安装教程,简单易懂,必能成功

    一 安装anaconda 这个自己弄一路默认就行或者你想改个路径也行 无所谓 安装好之后打开anaconda prompt控制面板 换成清华源 pip config set global index url https pypi tuna
  • 数字IC后端设计技术全局观

    数字IC后端设计flow 不含DFT 数字IC后端设计工具 DC 用于逻辑综合 FM 用于形式验证 ICC 用于物理实现 PrimeTime 用于STA 步骤 或文件类型 简述 RTL Register Transfer Level v文件
  • mysql8.0收费价格,MySQl 8.0遇到的坑

    报错 Illuminate Database QueryException SQLSTATE HY000 1045 Access denied for user root localhost using password NO SQL cr
  • Trying to access array offset on value of type int

    问题描述 出现报错信息 先百度翻译 试图访问int类型值的数组偏移量 通过翻译得知 int型的数据被其他不能使用的类型使用了 个人理解 关于这块 php7 4升级之后会有这个bug 网上大多人是说 7 4 版本的向后不兼容更改 非数组的数组
  • valgrind Massif

    valgrind检查内存泄露 valgrind 程序 内存泄漏问题 我们有memcheck工具来检查 很爽 但是有时候memcheck工具查了没泄漏 程序一跑 内存还是狂飙 这又是什么问题 其实memcheck检查的内存泄漏只是狭义的内存泄
  • Docker——安装和启动

    一 环境准备 1 安装Linux虚拟机软件 VMware或VirtualBox 比VMware更小巧轻便且免费 此处安装VirtulaBox 2 安装Linux虚拟系统 在管理中选择导入虚拟电脑 记得选中重新初始化所有网卡的MAC地址 双击
  • Dynamics CRM 365 如何设置经典登录页面

    Don t be surprised If you don t see classic interface post your sign up for dynamics 365 Okay let s face it We are losin
  • 复选框check的选中、不选中设置以及判断是否选中

    复选框的设置 一 JavaScript判断是否选中checkbox框 二 JavaScript设置选中checkbox框 三 JavaScript移除选中checkbox框 四 使用jQuery判断是否选中checkbox框 五 使用jQu
  • 国密(1) - 私钥Key文件( PEM格式)编解码方法

    详细的PEM文件格式解析 PEM文件 是按照私钥的ASN 1的格式 RFC5208 5915 5480 进行DER编码后输出二进制串的基础上 再进行Base64的编码 也就是每6个bit为一组 生成一个ascii码字符 需要4组6个bit
  • 学习笔记59—收藏这7个在线配色神器,再也不愁配色灵感了

    在设计中配色方案是必要的 也是让设计师头疼的一个问题 所以 编辑专为大家整理了一波配色神器网站 不用下载任何应用程序 打开即用 不仅能快速的做出符合设计概念的颜色组合 且有很多样品供你确认的工具 设计新手们千万别错过了 一 Khroma h
  • 【macOS】Win通过VNC远程控制Macbook

    Win通过VNC远程控制Macbook 参考 https zhuanlan zhihu com p 74162964 仅局域网内可用 Macbook配置 进入 电脑设置 勾选两个选项 Windows配置 安装VNC Viewer https
  • openpyxl操作表格的基本用法

    创建文件 以及创建xlsx表格 from openpyxl import Workbook load workbook import os 创建excel文件 默认会有一个sheet命名的表 def create xlsx path nam