Python操作Excel表格

【Python入门教程】Python常用表格函数&操作(xlrd、xlwt、openpyxl、xlwings) 在我们使用Python时,避免不了与Excel打交道。同样Python的三方库和代码的简洁性也为我们处理大数据提供了便利。今天给大家介绍一下常用的处理表格的函数,同时还有一些常用的操作。 阅读详情

本文介绍如何通过轻量级、零依赖(仅使用标准库)的 pylightxl 库操作Excel表格。

官网:Welcome to pylightxl documentation — pylightxl 2019 documentation

目录

一、入门

1. 读写CSV文件

2. 读Excel文件

3. 获取工作表和单元格数据

3.1 通过单元格地址 

3.2 通过单元格索引

3.3 通过单元格范围

3.4 获取整个行或列

3.5 通过行/列进行迭代

3.6 更新单元格的值

3.7 更新单元格公式

3.8 获取命名范围

3.9 基于键值获取行/列

4. 读取半结构化的数据

5. 将 pylightxl.Database 写入excel 文件

6. 将 Python 数据写入新的 Excel 文件

二、进阶


一、入门

1. 读写CSV文件

import pylightxl as xl

# 设置CSV文件路径
# 设置CSV文件的分隔符
# 设置默认工作表,将读入的CSV数据写入其中
db = xl.readcsv(fn='input.csv', delimiter='/', ws='sh2')

# 然后对其进行修改


# 现在把它写成csv文件;或者写成excel文件,见xl.writexl()。
xl.writecsv(db=db, fn='new.csv', ws=('sh2'), delimiter=',')

2. 读Excel文件

import pylightxl as xl

# readxl返回一个持有所有工作表及其数据的pylightxl数据库
db = xl.readxl(fn='folder1/folder2/excelfile.xlsx')

# pylightxl也支持pathlib
my_pathlib = pathlib.Path('folder1/folder2/excelfile.xlsx')
db = xl.readxl(my_pathlib)

# pylightxl也支持django用户的类文件对象。
with open('excelfile.xlsx', 'rb') as f:
    db = xl.readxl(f)

# 仅读取选择的工作表
db = xl.readxl(fn='folder1/folder2/excelfile.xlsx', ws=('Sheet1','Sheet3'))

# 返回所有工作表的名字
db.ws_names
>>> ['Sheet1', 'Sheet3']

3. 获取工作表和单元格数据

假设表格的数据内容如下图所示:

3.1 通过单元格地址 

# 访问指定单元格的数据
db.ws(ws='Sheet1').address(address='A1')
>>> 10
# 访问该单元格的公式(如果有的话)
db.ws(ws='Sheet1').address(address='A1', output='f')
>>> ''
# 访问该单元格的注释(如果有的话)
db.ws(ws='Sheet1').address(address='A1', output='c')
>>> 'this is a comment on cell A1!'
# 注意:空单元格的索引将返回一个空字符串。
db.ws(ws='Sheet1').address(address='A100')
>>> ''
# 默认的空值可以覆盖每个工作表。
db.ws(ws='Sheet1').set_emptycell(val=0)
db.ws(ws='Sheet1').address(address='A100')
>>> 0

3.2 通过单元格索引

# 访问指定单元格的数据
db.ws(ws='Sheet1').index(row=1, col=2)
>>> 20
# 访问该单元格的公式(如果有的话)
db.ws(ws='Sheet1').index(row=1, col=2, output='f')
>>> '=A1+10'
# 注意:空单元格的索引将返回一个空字符串。
db.ws(ws='Sheet1').index(row=100, col=1)
>>> ''
# 默认的空值可以覆盖每个工作表。
db.ws(ws='Sheet1').set_emptycell(val=0)
db.ws(ws='Sheet1').index(row=100, col=1)
>>> 0

3.3 通过单元格范围

db.ws(ws='Sheet1').range(address='A1')
>>> 10
# 获取指定范围的数据
db.ws(ws='Sheet1').range(address='A1:C2')
>>> [[10, 20, ''], ['', 30, 40]]
# 获取指定范围的公式
db.ws(ws='Sheet1').range(address='A1:B1', output='f')
>>> [['=10', '=A1+10']]
# 用指定值更新指定范围
db.ws(ws='Sheet1').update_range(address='A1:B1', val=10)

3.4 获取整个行或列

db.ws(ws='Sheet1').row(row=1)
>>> [10,20,'']

db.ws(ws='Sheet1').col(col=1)
>>> [10,'']

3.5 通过行/列进行迭代

for row in db.ws(ws='Sheet1').rows:
    print(row)

>>> [10,20,'']
>>> ['',30,40]

for col in db.ws(ws='Sheet1').cols:
    print(col)

>>> [10,'']
>>> [20,30]
>>> ['',40]

3.6 更新单元格的值

db.ws(ws='Sheet1').address(address='A1')
>>> 10
db.ws(ws='Sheet1').update_address(address='A1', val=100)
db.ws(ws='Sheet1').address(address='A1')
>>> 100

db.ws(ws='Sheet1').update_index(row=1, col=1, val=10)
db.ws(ws='Sheet1').index(row=1, col=1)
>>> 10

3.7 更新单元格公式

db.ws(ws='Sheet1').update_address(address='A1', val='=B1+100')
db.ws(ws='Sheet1').update_index(row=1, col=1, val='=B1+100')

3.8 获取命名范围

# 定义一个范围
db.add_nr(name='Table1', ws='Sheet1', address='A1:B2')
# 获取命名范围的数据
db.nr(name='Table1')
>>> [[10, 20], ['', 30]]
# 获取命名范围的位置
db.nr_loc(name='Table1')
>>> ['Sheet1','A1:B2']
# 更新命名范围的值
db.update_nr(name='Table1', val=10)
# 查看所有的命名范围
db.nr_names
>>> {'Table1': 'Sheet1!A1:B2'}
# 删除一个指定的范围
db.remove_nr(name='Table1')

3.9 基于键值获取行/列

# 假设我们想返回 “行=1, 单元格值=20” 的那一列
db.ws(ws='Sheet1').keycol(key=20, keyindex=1)
>>> [20,30]

# 我们还可以指定一个自定义的键索引(不仅仅是row=1),注意我们现在是根据row=2来匹配的。
db.ws(ws='Sheet1').keycol(key=30, keyindex=2)
>>> [20,30]

# 同样,对于keyindex=1的keyrow也是如此(寻找col=1中的匹配项)。
db.ws(ws='Sheet1').keyrow(key='', keyindex=1)
>>> ['',30,40]

4. 读取半结构化的数据

import pylightxl
db = pylightxl.readxl(fn='Book1.xlsx')

# 要求半结构化数据(SSD)输出
ssd = db.ws(ws='Sheet1').ssd(keycols="KEYCOLS", keyrows="KEYROWS")

ssd[0]
>>> {'keyrows': ['r1', 'r2', 'r3'], 'keycols': ['c1', 'c2', 'c3'], 'data': [[1, 2, 3], [4, '', 6], [7, 8, 9]]}
ssd[1]
>>> {'keyrows': ['rr1', 'rr2', 'rr3', 'rr4'], 'keycols': ['cc1', 'cc2', 'cc3'], 'data': [[10, 20, 30], [40, 50, 60], [70, 80, 90], [100, 110, 120]]}

5. 将 pylightxl.Database 写入excel 文件

Pylightxl支持写excel而不需要在机器上安装excel。然而,它也不是没有限制。写入器只支持单元格数据的写入(即:不支持图形、格式化、图像、宏等),仅仅是单元格中的字符串/数字/方程。

import pylightxl as xl

# 读取现有工作表并改变其单元格的值(与上述工作表相同)。
db = xl.readxl(fn='excelfile.xlsx')
# 覆盖现有的数字值
db.ws(ws='Sheet1').index(row=1, col=1)
>>> 10
db.ws(ws='Sheet1').update_index(row=1, col=1, val=100)
db.ws(ws='Sheet1').index(row=1, col=1)
>>> 100
# 写入文本
db.ws(ws='Sheet1').update_index(row=1, col=2, val='twenty')
# 写入方程
db.ws(ws='Sheet1').update_address(address='A3', val='=A1')

# 将db写入本地Excel文件
xl.writexl(db=db, fn='updated.xlsx')

6. 将 Python 数据写入新的 Excel 文件

import pylightxl as xl

# 以这个列表为例,作为我们的输入数据,我们想把它放在A列中
mydata = [10,20,30,40]

# 创建一个空白数据库
db = xl.Database()

# 在数据库中添加一个空白工作表
db.add_ws(ws="Sheet1")

# 循环将我们的数据添加到工作表中
for row_id, data in enumerate(mydata, start=1)
    db.ws(ws="Sheet1").update_index(row=row_id, col=1, val=data)

# 将db写入新的本地Excel文件
xl.writexl(db=db, fn="output.xlsx")

二、进阶

待完成部分

三、其他读写Excel的库

除了pylightxl,还有其他很多库可以用于读写Excel文件,例如:xlrd,xlwd,OpenPyXl等

xlrd与xlwt的使用教程_QQVQQ...的博客-优快云博客

教程 — openpyxl 3.0.7 文档

openpyxl使用教程_Cold autumn的博客

Python 操作 Excel 库 xlrd与xlwt 常用操作详解

Excel 神器 —— OpenPyXl - 知乎

Python操作Excel表格的模块xlrd的简单介绍

Python自动化操作Excel表格 目录 一、Python打开及读取Excel表格内容 二、Python向Excel表格中写 三、批量调整字体、样式 四、编程生成Excel内图表 一、Python打开及读取Excel表格内容 #打开以及读取Excel表格内容 #列:column 行:row 格子:cell 表:sheet #Excel中从1开始计数 from openpyxl import load_workbook workbook = load_workbook(filename='aaa.xlsx')#只能打开存在表格 阅读详情

相关推荐

Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!python操作Excel教程

0.Python Excel库对比 1.Python xlrd 读取 操作Excel 2.Python xlwt 写入 操作Excel 3.Python xlutils 修改 操作Excel 4.Python xlwings 读取 写入 修改 操作Excel 5.Python openpyxl 读取 写入 修改 操作Excel 6.Python xlswriter 写入 操作Excel 7.Python win32com 读取 写入 修改 操作Excel 8.Python pandas 读取 写入 操作Ex

超级大洋葱的博客 5万+

Python pylightxl模块-操作入门教程

Pylightxl,Python轻量级Excel文件读写模块

martin_SCS的博客 1566

Python绘制表格

Python的Plotly模块可以实现绘制表格。Plotly是基于JavaScript的Python封装,它可以为很多编程语言提供接口。而交互式、美观、使用方便也成为了Plotly最大的优势。Plotly是一个单独的绘图库,与Matplotlib绘图库、Seaborn绘图库并没有什么关系,它有自己独特的绘图语法、绘图参数和绘图原理,与Python中Matplotlib、NumPy、和Pandas等库可以做到无缝连接。Plotly支持绘制表格,而且绘图效果非常美观。

专注Python和R语言,分享Python和R语言入门教程 4461

全网最全Python操作Excel教程

0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库): 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 (1)什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。 (2)为什么使用xlrd模块? 在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。 xlrd模块可以用于读取Excel的数据,速度非常快,推荐使用! 官方文档:ht

feng的博客 13万+

从Cartographer3D到LIO-SAM:主流3D激光SLAM算法怎么选?一份给机器人工程师的实战避坑指南

本文深入探讨了从Cartographer3D到LIO-SAM等主流3D激光SLAM算法的选型策略,为机器人工程师提供实战避坑指南。通过对比不同算法在传感器配置、环境特性和计算资源等方面的表现,帮助开发者根据项目需求选择最优方案,并分享传感器标定、资源优化等实用技巧。

weixin_27310985的博客 154

UDS诊断ISO14229新手入门篇

这个命令的格式稍微复杂一点。sub-function = 0x06 用于读取某个 DTC 及其相关的环境数据,此时 parameter 为 4 个 byte,前三个 byte 用于标识我们要读取的 DTC,第四个 byte 用于标识要读取的环境数据的范围,UDS 规定使用 FF 来表示读取所有的环境数据,各厂家可以要根据自己的需求定义其他的值来代表要读取的环境数据的范围。环境数据包括 DTC 状态,优先级,发生次数,老化计数器,时间戳,里程等,厂家还可以根据自己的需求定义一些此 DTC 产生时的测量数据。

weixin_45387165的博客 1970

Python操作excel表格

主旨在日常工作中,我们会经常且频繁的使用excel表格,那么我们是否可以通过python来操作excel表格,让其自动化的来代替我们的工作呢?比如涉及到的居中、合并单元格、修改字体颜色等。环境linux 服务器一台,亦或者windows10电脑一台 python3.7.1版本,python3.x的都可以安装模块操作excel需要用到的模块是“xlwt”,我们需要使用python中的pip命令来安装此模块;PS:centos默认的python是2.x版本,建议升级到python3.x版本,否则无法进行后续过程

ouyangzhenxin的博客 7325

论文解读--Phase Noise in FMCW Radar Systems

相位噪声是现代雷达、通信、光谱和计量系统的基本性能参数之一。本文提出了一种适用于FMCW雷达系统的相位噪声理论。导出了一个新的设计方程,用于确定雷达系统中允许的源相位噪声电平的最大界。分析了在传输延迟小于参考振荡器相干时间时,相干混频引起的非线性相位噪声去相关函数;讨论了在传输延迟大于参考振荡器相干时间时,目标响应的频谱展宽。提出了收发链中各子系统的影响,并讨论了一种新的ADC相位噪声模型。介绍了相位噪声建模技术,然后将锁相环频率合成器与低噪声频率合成器进行比较,以演示减少相位噪声边带以改善检测和跟踪性能。

奔袭的算法工程师 3763

python openpyxl操作Excel表格

原创:未经允许不得转载,转载需标明出处 打算分为两个部分: 第一部分为:操作Excel表格 第二部分为:操作Excel图表 现在发布为第一部分内容 在最近的项目中的使用到了提取Android帧率日志,进行计算后,需要存在为表格,所以私下研究了下openpyxl,形成文档记录。 一、openpyxl的安装 1.1 python没有自带openpyxl,需要安装。 pip install openp...

人人分享为人人 2527

LMK04821时钟芯片SPI配置避坑指南:从寄存器读写到频率校准全流程

本文详细解析了LMK04821时钟芯片的SPI配置全流程,涵盖寄存器读写、频率校准及JESD204B系统设计中的关键技巧。通过实战案例和避坑指南,帮助工程师高效解决时钟输出异常、同步失败等常见问题,提升高速数据采集系统的时钟稳定性。

weixin_29172963的博客 158

告别同质化!用PyTorch Geometric手把手实现RGCN处理多关系图数据(附实战代码)

本文详细介绍了如何使用PyTorch Geometric实现关系图卷积网络(RGCN)处理多关系图数据,特别适用于社交网络分析、推荐系统等场景。通过实战代码演示了从数据加载、模型构建到训练优化的完整流程,帮助开发者高效处理异构图数据,提升模型性能。

weixin_30781433的博客 259

python操作excel表格

1.python读取excel表格所用到的模块是xlrd import xlrd data=xlrd.open_workbook('a.xlsx')     #获取一个表格对象,表格格式为xlsx或者xls table=data.sheets()[0]   #通过索引获取sheet工作表 table=data.sheet_by_index(0)   #通过索引获取sheet工作表

meisailor的博客 1560

从零开始掌握Simscape Multibody:机械系统建模与仿真入门

本文为机械系统建模与仿真入门指南,详细介绍了如何从零开始使用Simscape Multibody。通过构建曲柄摇块机构的实战案例,系统讲解了刚体、关节、约束等核心模块的使用,以及模型验证、参数化设计和多领域系统集成等进阶技巧,帮助工程师和学生高效进行虚拟设计与测试。

weixin_29229261的博客 310

Python实现 【Excel表格操作】

xlrd是Python处理Excel 表格数据的一个模块,能够对Excel中的数据进行读取。 一个具有注脚的文本。在命令行或终端中输入以下命令进行: 说明一下: 由于下面将以读取xlsx格式的文件来演示xlrd模块的使用,因此此处安装xlrd时指明了版本号,否则pip会默认安装最新版本的xlrd,而最新版本的xlrd删除了对xlsx格式文件的支持。使用xlrd模块中的open_workbook函数可以打开指定的Excel文件。比如: 如果你的Python路径和Excel文件在同级目录下,也可以通过以下方法

2301_80636070的博客 959

AMDGPU IH(Interrupt Handler)实现分析

AMDGPU IH环形缓冲区机制是显卡驱动中高效处理GPU硬件中断的核心架构。该机制通过环形缓冲区存储中断事件,利用读写指针(wptr/rptr)同步硬件与驱动间的数据交互。硬件写入事件后驱动遍历处理,通过指针掩码实现环形循环,并具备溢出检测和虚拟化环境下的重置保护。其优势在于批量处理降低中断开销,指针同步确保可靠性,支持多队列扩展和SR-IOV虚拟化场景,为GPU中断管理提供了高性能基础架构。

图形/计算GPU的驱动与虚拟化技术分享园地 1629

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python中读取Excel表格操作

python中读取Excel表格操作用到的是xlrd和xlwt模块。下面分两段讲解。 一、xlwt写入表格操作 1.首先创建一个工作薄: f = xlwt.Workbook() 这个工作薄相当于你放表格的本子,这个本子可以存放多个表格 2.创建一个列表: sheet = f.add_sheet('学生',cell_overwrite_ok=True) “学生”为这个表格的名字,cell_over...

weixin_43929852的博客 587

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python小姿势 - Python操作Excel表格数据

《100天精通Python》专栏,最详细的Python入门到精通教程;理论篇基础知识讲解构建体系框架、实践篇Python黑科技学以致用。https://blog.youkuaiyun.com/weixin_39032019/category_12263598.html

独木不成林,单弦不成音。 2491

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

python新建excel表格-Python Excel操作之xlwt创建表格

在处理excel数据时发现了xlwt的局限性–不能写入超过65535行、256列的数据(因为它只支持Excel 2003及之前的版本,在这些版本的Excel中行数和列数有此限制),这对于实际应用还是不够的。为此经过一番寻找发现了一个支持07/10/13版本Excel的openpyxl,虽然功能很强大,但是操作起来感觉没有xlwt方便。Python Excel操作之xlwt创建表格:#Python ...

weixin_37988176的博客 1247

python操作Excel表格

注意:python操作Excel表格时,文件后缀为.xls格式 #!usr/bin/env python #-*- coding:utf-8 -*- """ @author:doulihang @file: yecao.py @time: 2019/04/11 """ import os import xlrd from xlutils.copy import copy def base_d...

doulihang的博客 967

Python必学的30个Excel表格操作脚本

今天带来的是Python必学的30个Excel表格操作脚本,感受一下自动化的神奇之处吧。注:代码copy过去后,一定要记得安装好第三方库和模块。

Candyz7的博客 1769

使用python操作excel表格

操作两个表格数据,生成一个表格。使用python 的 xlrd库来实现读取excel数据, 使用 xlwt 来生成excel 表格, 使用tkinter库 实现 GUI 一、读取excel数据 1.xlwt用法说明 xlwt 是 读取、格式化excel表格信息的一个库,xls,xlsx 文件都支持。 xlrd.open_workbook(filename=None) #打开电子表格文件以...

fishycx的专栏 854

python编程:用Python轻松操作Excel表格

Excel是一种常见的电子表格文件格式,广泛用于数据记录、分析和处理。而Python作为一门强大的编程语言,可以让我们轻松地对Excel表格进行操作和处理,使用Python对Excel进行操作,能够提高效率和灵活性。本文将演示如何用Python轻松操作Excel电子表格,带你一步步领略Python的魔力。

lu_jianjun的专栏 1788

Python有哪些操作Excel表格的方法?python操作Excel方法介绍

python之中有一个第三方库叫做openpyxl,它可以在python只用用来对Excel表格做不同的操作,例如获取值、设置格式、复制粘贴等等。本篇文章就将消息介绍一些使用它来对Excel表格文件进行操作的方法,一起往下看看吧。

m0_59236602的博客 566

python操作xls_python操作excel表格的方法

这篇文章我们来讲一下在网站建设中,python操作excel表格的方法。本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文。说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错。这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本。1. 下载相关python包python操作excel表格可以使...

weixin_39802132的博客 2273
上一篇: Python数据可视化之matplotlib绘图教程
下一篇: matplotlib显示中文的四种方法
QQVQQ_
博客等级 码龄8年 2610粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值