Pythonopenpyxl详解

一、Pythonopenpyxl概述

Pythonopenpyxl是一种在Python中操作Excel文件的库,可以读写xlsx文件,支持Excel 2010及更高版本,可以生成图表、数据透视表以及公式等Excel特性。

Pythonopenpyxl的优点在于其可读性、性能和容错率,因为它基于业界标准的压缩和解压缩库实现,同时可以利用Python的强大脚本处理能力实现更多功能。

下面我们来看看Pythonopenpyxl常用的几个方面。

二、读取Excel文件

Pythonopenpyxl可以读取Excel文件,方法如下:


import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb['Sheet1']
print(sheet['A1'].value)

代码解释:

openpyxl.load_workbook函数读取指定的Excel文件example.xlsx,把所有的sheet载入到内存中,并且把其中一个名为Sheet1的sheet赋值给变量sheet。sheet[‘A1’].value表示获取sheet中A1单元格的值。

三、写入Excel文件

Pythonopenpyxl可以写入Excel文件,方法如下:


import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = 'Hello'
sheet['B1'] = 'World!'
wb.save('example.xlsx')

代码解释:

openpyxl.Workbook()生成一个内存中的Workbook对象,wb.active赋值为当前对象的第一个sheet。sheet[‘A1’] = ‘Hello’表示在当前sheet的A1单元格中写入Hello,sheet[‘B1’] = ‘World!’表示在当前sheet的B1单元格中写入World!关键代码都写完之后使用wb.save(‘example.xlsx’)把当前对象写入到磁盘的example.xlsx文件中。

四、公式计算

Pythonopenpyxl可以做公式计算,方法如下:


import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
sheet['C1'] = '=SUM(A1:B1)'
wb.save('example.xlsx')

代码解释:

openpyxl.load_workbook函数读取指定的Excel文件example.xlsx,把所有的sheet载入到内存中,并且把当前对象wb.active赋值为当前对象的第一个sheet。sheet[‘C1’] = ‘=SUM(A1:B1)’表示在当前sheet的C1单元格中做一个公式计算,计算A1:B1所有单元格的和。最后使用wb.save(‘example.xlsx’)把当前对象写入到磁盘的example.xlsx文件中。

五、数据透视表

Pythonopenpyxl可以操作数据透视表,方法如下:


import openpyxl
from openpyxl import Workbook
from openpyxl import utils
from openpyxl.utils import column_index_from_string as get_letter
from openpyxl import worksheet

wb = openpyxl.load_workbook('example.xlsx')
ws = wb.active
ws.title = "Pivot"

ws['A1'] = "Region"
ws['B1'] = "Employee"
ws['C1'] = "Sales"

ws['A2'] = "West"
ws['B2'] = "Johann"
ws['C2'] = "100"
ws['A3'] = "West"
ws['B3'] = "Johann"
ws['C3'] = "150"
ws['A4'] = "West"
ws['B4'] = "Mary Sue"
ws['C4'] = "200"
ws['A5'] = "West"
ws['B5'] = "Mary Sue"
ws['C5'] = "175"
ws['A6'] = "East"
ws['B6'] = "Mark"
ws['C6'] = "75"
ws['A7'] = "East"
ws['B7'] = "Mark"
ws['C7'] = "100"
ws['A8'] = "East"
ws['B8'] = "Ryan"
ws['C8'] = "150"
ws['A9'] = "East"
ws['B9'] = "Ryan"
ws['C9'] = "200"

ws = wb.create_sheet("PivotOutput")
ws = worksheet.Worksheet(ws._ workbook, "PivotOutput")
ws.title = "PivotOutput"

pt = ws.pivot_table(ws['A1:C9'], rows='Region', cols='Employee', values='Sales')

wb.save('example.xlsx')

代码解释:

openpyxl.load_workbook函数读取指定的Excel文件example.xlsx,把所有的sheet载入到内存中,并且把当前对象wb.active赋值为当前对象的第一个sheet。代码中hard code一些数据,这部分代码是为了生成测试数据。pt = ws.pivot_table(ws[‘A1:C9′], rows=’Region’, cols=’Employee’, values=’Sales’)表示设置一个数据透视表,行字段是Region,列字段是Employee,值字段是Sales。

六、图表生成

Pythonopenpyxl可以生成图表,方法如下:


import openpyxl
from openpyxl.chart import BarChart, Reference

wb = openpyxl.Workbook()
sheet = wb.active

for i in range(1, 11):
    sheet['A' + str(i)] = i
    sheet['B' + str(i)] = i

values = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=10)

chart = BarChart()
chart.add_data(values)
sheet.add_chart(chart, 'D1')

wb.save('example.xlsx')

代码解释:

openpyxl.Workbook()生成一个内存中的Workbook对象,wb.active赋值为当前对象的第一个sheet。使用一个循环把1-10写入第一个sheet的A列和B列。values = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=10)表示把B列的值赋值给变量values。实例化一个BarChart并且把变量values赋值给图表。使用sheet.add_chart(chart, ‘D1’)在D1单元格位置创建图表。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/252016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-13 17:33
下一篇 2024-12-13 17:33

相关推荐

  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25
  • C语言贪吃蛇详解

    一、数据结构和算法 C语言贪吃蛇主要运用了以下数据结构和算法: 1. 链表 typedef struct body { int x; int y; struct body *nex…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25

发表回复

登录后才能评论