Python 读取写入excel文件

使用Python读取和写入excel的xlsx、xls文件

 

目录

读取xlsx文件

安装三方库

引入三方库

读取数据

打开文件

表名

最大行数

最大列数

读取一张表

读取整个文件

返回xls整体内容

安装三方包

读取内容

写入xls文件

引入三方库

创建文件并写入数据

报错及解决

报错

解决

总结


读取xlsx文件

安装三方库

命令如下:

pip install openpyxl

安装过程:

引入三方库

把使用需要的库引入进来

示例如下:

from openpyxl.reader.excel import load_workbook
import os

 

读取数据

打开文件

加载文件路径,打开文件并获取所有表头。

file = load_workbook(filename=path)
sheets = file.get_sheet_names()

表名

打印该表的表名称。

示例如下:

sheet1 = file.get_sheet_by_name(sheets[0])
print(sheet1.title)

最大行数

打印该表的最大行数。

示例如下:

sheet1 = file.get_sheet_by_name(sheets[0])
print(sheet1.max_row)

最大列数

打印该表的最大列数。

示例如下:

sheet1 = file.get_sheet_by_name(sheets[0])
print(sheet1.max_column)

读取一张表

读取excel文件中第一张表的所有数据,使用循环取得数据,添加到列表中后返回并打印。

示例如下:

def read_xls(path):file = load_workbook(filename=path)sheets = file.get_sheet_names()sheet1 = file.get_sheet_by_name(sheets[0])for lineNum in range(1, sheet1.max_row + 1):lineList = []for columnNum in range(1, sheet1.max_column + 1):# 拿数据value = sheet1.cell(row=lineNum, column=columnNum).valuelineList.append(value)print(lineList)
# 读一张表数据
path = os.path.join(os.getcwd(), './test.xlsx')
read_xls(path)

读取整个文件

读取excel xlsx整个文件所有表内容。

示例如下:

from openpyxl.reader.excel import load_workbook
import osdef read_xls(path):dic = {}file = load_workbook(filename=path)sheets = file.get_sheet_names()for sheetName in sheets:sheet = file.get_sheet_by_name(sheetName)# 存储一张表所有数据sheetInfo = []for lineNum in range(1, sheet.max_row + 1):lineList = []for columnNum in range(1, sheet.max_column + 1):value = sheet.cell(row=lineNum, column=columnNum).valuelineList.append(value)sheetInfo.append(lineList)# 存入字典dic[sheetName] = sheetInforeturn dicpath = os.path.join(os.getcwd(), './test.xlsx')
print(read_xls(path))

效果为:

注意:不能处理xls文件。警告并不影响使用。

返回xls整体内容

安装三方包

因为需要操作xls后缀文件,需要安装一下三方包。

命令如下:

pip install pyexcel
pip install pyexcel-xls
pip install pyexcel-xlsx

如果使用有问题,再安装以下这几个库:

pip install xlrd
pip install future
pip install xlwt-future

 

读取内容

示例如下:

from collections import OrderedDict
from pyexcel_xls import get_data
import osdef read_xls_xlsx(path):dic = OrderedDict()getData = get_data(path)for sheet in getData:dic[sheet] = getData[sheet]return dicpath = os.path.join(os.getcwd(), 'test2.xls')
print(read_xls_xlsx(path))

执行效果:

E:\lianxipy\venv\Scripts\python.exe E:\lianxipy\python基础\读取excel\返回xls和xlsx整体内容.py 
OrderedDict([('Sheet1', [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16]]), ('Sheet2', [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21]]), ('Sheet3', [])])

注意:无法读取xlsx后缀文件。

写入xls文件

创建excel文件,并把数据写入到xls文件中。

引入三方库

示例如下:

from collections import OrderedDict
from pyexcel_xls import save_data
import os

创建文件并写入数据

编写好处理创建和组装数据处理函数,传入设定的路径和数据,调用函数。

示例如下:

def create_excel(path, data):dic = OrderedDict()for sheetName, sheetValue in data.items():datas = {}datas[sheetName] = sheetValuedic.update(datas)save_data(path, dic)path = os.path.join(os.getcwd(), 'write1.xls')
data = {'表1': [[1, 2, 3], [4, 5, 6]], '表2': [[11, 22], [33, 44]]}
create_excel(path, data)

报错及解决

报错

ValueError: cannot use LOCALE flag with a str pattern

报错全部内容截图如下:

解决

修改python安装目录下Lib中的sre_parse.py。

注释901行中代码

修改如下:

执行结果:

总结

本篇主要为使用Python 操作excel文件读取和写入安装类库和使用示例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/731357.shtml

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

相关文章

一、系统架构

1系统架构师概述和意义: 系 统 架 构 是 系 统 的 一 种 整 体 的 高 层 次 的 结 构 表 示 , 是 系 统 的 骨 架 和 根 基 , 其 决 定 了 系 统 的 健 壮 性 和 生 命 周 期 的 长 短 。 2定义 项 目 的 总 设 计 师 , 他 是 …

房屋租赁系统|基于 Mysql+Java+JSP技术的房屋租赁系统设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

目录 文末获取源码 前台首页功能 管理员功能 租户功能 房屋租赁系统结构图 数据库设计 lunwen参考 概述 源码获取 文末获取源码 前台首页功能 管理员功能 租户功能 房屋租赁系统结构图 数据库设计 lunwen参考 概述 随着科学技术的飞速发展,社会的方方面面…

SQL语言(数据库编程)

一.select查询 在数据库编程中,SQL(Structured Query Language,结构化查询语言)是一种用于管理关系数据库管理系统(RDBMS)的标准编程语言。其中,SELECT 是 SQL 中最常用的查询语句,用于从数据库表中检索数据。 下面是一个基本的 SELECT 查询的示例: SELECT column1…

说一下HTML5有哪些新特性?

新增语义化标签,音频视频标签 新增DOM查询 --- querySelector() 、 querySelectorAll() canvas绘图 --- 用js绘制图像,可绘制一些基本图形、动画,适合做游戏 SVG绘图 --- 可缩放矢量图形,可绘制一些基本图形,适合做地图…

Flutter APP下载更新

由于我做的项目不是放在APP商店(公司内部用)的,一些flutter的第三方库不合适我,我需要用的是从网上下载再安装(从服务下),网上也找了花了我好几天时间。不全又乱,这我自己做一下备份…

ODI报错

三月 08, 2024 1:20:09 下午 oracle.odi.mapping 信息: Start generation of map physical design: MapPhysicalDesign New_Mapping.物理 三月 08, 2024 1:20:09 下午 oracle.odi.mapping 信息: Finished generation of map physical design: MapPhysicalDesign New_Mapping.物…

HTML—基本介绍

HTML是一种超文本标记语言(HyperText Markup Language),用于创建网页的标记语言超文本:是指页面内可以包含图片、链接、声音、视频等内容标记:HTML富含大量的标签供程序员使用,通过标记符号来规定指定内容的样式 浏览器最终根据不…

HybridCLR热更新介绍

官方文档 参照视频 HybridCLR介绍 HybridCLR是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案 HybridCLR与ToLua/XLua、ILRuntime有什么不同 什么是游戏热更新:有热更的游戏更新流程 游戏热更新的种类 资源热更新:主要…

内存分区与具体介绍:

1. 内存分区图: 2. 分区介绍: 2.1. 栈区: 存放:临时的局部变量、函数的传参 特点:占用内存小,速度快 数据的存储和释放采用栈式结构,先入后出,类似于C下类的构造析构函数 2.2. 堆区&…

在Linux(Ubuntu)中使用终端编译 vscode安装

文章目录 📚在Linux(Ubuntu)中使用终端编译🐇.cpp程序编译🐇.py程序编译🐇查看Python、C编程环境 📚vscode安装 📚在Linux(Ubuntu)中使用终端编译 虚拟机安装…

【硬件工程师面经整理25_AD】

文章目录 1 AD设计电路全流程2 ad和cadence区别-逻辑上的区别 1 AD设计电路全流程 软件AD or 模拟数字? 软件AD:AD设计电路全流程包括以下步骤:选择AD库和添加、画原理图、PCB布局、PCB布线、PCB打样、PCB加工 模拟数字: 需求分…

实现HttpServletRequest下多次获取流数据

HttpServletRequest下多次获取流数据 背景示例错误的尝试全局替换执行顺序 背景 ​众所周知request的输入流只能读取一次,不能重复读取。而在HttpServletRequest中,获取请求体数据的流(通过getInputStream()方法)默认只能被读取一…

移动端精准测试之跨版本覆盖率合并

一,项目简介 在移动端项目测试过程中,尤其是发版前的回归测试阶段,会遇到这样的情况,在测试过程中测试不断地发现问题,开发就进行修改,然后打包测试。而测试完成后呢,业务测试同学想知道整个回归…

Qt 5.14.2 网络编程揭秘:构建高效HTTP客户端与文件下载器

引言 在当今的软件开发世界中,网络通信已成为不可或缺的一部分。Qt,作为一个跨平台的C框架,为我们提供了强大的网络编程能力。本文将带你深入Qt的网络模块,探索如何使用QNetworkAccessManager、QNetworkRequest和QNetworkReply等核…

【HarmonyOS】ArkTS-对象方法

目录 对象方法实例 对象方法 方法作用:描述对象的具体行为 约定方法类型 interface 接口名称 { 方法名: (参数:类型) > 返回值类型 }interface Person{dance: () > voidsing: (song: string) > void}添加方法(箭头函数) let ym: P…

电商数据分析18——电商广告投放的数据分析与优化

目录 写在开头1. 电商广告投放的挑战与机遇1.1 广告投放的主要目标与挑战1.2 广告数据分析的价值 2. 数据分析在广告投放中的应用2.1 目标受众分析与精准定位2.2 广告效果评估与ROI分析2.3 A/B测试与广告内容优化 3. 广告投放优化的实践案例3.1 案例分享:精准定向提…

springboot使用EasyExcel实现Excel导入导出

java生成Excel比较有名的框架有Apache poi、jxl等,但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。 EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。…

微前端之再说无界的使用

运行模式 保活模式单例模式重建模式 生命周期改造 改造入口函数: 应用间通信 原理props 通信 主应用可以通过 props 注入数据和方法:子应用可以通过 $wujie 对象来获取数据: window 通信 主应用调用子应用的全局数据:子应用调用主…

每天学习一个Linux命令之find

每天学习一个Linux命令之find 概述 在Linux系统中,find命令是一个非常强大的工具,用于查找和操作文件和目录。它可以根据一些条件来搜索指定路径下的文件,并执行相应的操作。本篇博客将详细介绍find命令的各个可用选项及其用法。 基本语法…

lvs集群中NAT模式

群集的含义 由多台主机构成,但对外表现为一个整体,只提供一个访问入口,相当于一台大型的计算机。 横向发展:放更多的服务器,有调度分配的问题。 垂直发展:升级单机的硬件设备,提高单个服务器自身功能。 …