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

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

相关文章

KBL610-ASEMI开关电源专用KBL610

编辑:ll KBL610-ASEMI开关电源专用KBL610 型号:KBL610 品牌:ASEMI 封装:KBL-4 最大重复峰值反向电压:1000V 最大正向平均整流电流(Vdss):6A 功率(Pd):中小功率 芯片个数:4 …

项目解决方案:视频监控接入和录像系统设计方案(下)

目 录 1.概述 2. 建设目标及需求 2.1建设总目标 2.2 需求描述 ​2.3 需求分析 3.设计依据与设计原则 3.1设计依据 3.2 设计原则 4.建设方案设计 4.1系统方案设计 4.2组网说明 5.产品介绍 5.1视频监控综合资源管理平台介绍 5.2视频录像服务器和存储 5.2.…

MySQL--优化(索引--聚簇和非聚簇索引)

MySQL–优化(索引–聚簇和非聚簇索引) 定位慢查询SQL执行计划索引 存储引擎索引底层数据结构聚簇和非聚簇索引索引创建原则索引失效场景 SQL优化经验 一、聚簇索引 聚簇索引:将数据存储与索引放到了一块,索引结构的叶子节点保存…

ChatGPT无法登录,提示我们检测到可疑的登录行为,将阻止进一步的尝试。请与管理员联系

1. 问题描述 之前本来已经连续稳定使用ChatGPT好几个月了,但是今天尝试登录ChatGPT的时候,却提示:我们检测到可疑的登录行为,将阻止进一步的尝试。请与管理员联系。 此外,我还在网上看到了一些相关的消息,…

3D资产管理

3D 资产管理是指组织、跟踪、优化和分发 3D 模型和资产以用于游戏、电影、AR/VR 体验等各种应用的过程。 3D资产管理也称为3D内容管理。 随着游戏、电影、建筑、工程等行业中 3D 内容的增长,实施有效的资产管理工作流程对于提高生产力、减少错误、简化工作流程以及使…

【Android 内存优化】KOOM 快手开源框架线上内存监控方案-源码剖析

文章目录 前言OOMMonitorInitTask.INSTANCE.initOOMMonitor.INSTANCE.startLoopsuper.startLoopcall() LoopState.Terminate dumpAndAnalysisdumpstartAnalysisService回到startLoop方法总结 前言 这篇文章主要剖析KOOM的Java层源码设计逻辑。 使用篇请看上一篇: 【Android …

基于el-tree实现懒加载穿梭条

一、关键代码 <template><div><!-- 左侧待选列表 --><div class"left-box"><p>待选列表</p><el-input placeholder"输入关键词过滤" v-model"leftFilterText" clearable/><el-treeref"tree…

Windows系统安装MongoDB并结合内网穿透实现公网访问本地数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…

颜色检测python项目

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 什么是颜色检测&#xff1f; 颜色检测是检测任何颜色名称的过程。很简单不是吗&#xff1f;嗯&#xff0c;对于人类来说&#xff0c;这是一项极…

荔枝派zero驱动开发06:GPIO操作(platform框架)

参考&#xff1a; 正点原子Linux第五十四章 platform设备驱动实验 一张图掌握 Linux platform 平台设备驱动框架 上一篇&#xff1a;荔枝派zero驱动开发05&#xff1a;GPIO操作&#xff08;使用GPIO子系统&#xff09; 下一篇&#xff1a;更新中… 概述 platform是一种分层思…

static的用法和作用

从三个方面来讲述static的用法和作用&#xff0c;分别是静态局部变量和静态函数以及静态成员 1. 在一个函数中定义静态局部变量的时候&#xff0c;该静态局部变量的生命周期将贯穿整个程序的运行期&#xff0c;而不会像局部变量一样函数运行结束的时候就被销毁。 #include &…

华为北向网管NCE开发教程(1)闭坑选接口协议

华为北向网管NCE开发教程&#xff08;1&#xff09;闭坑选接口协议 华为北向网管NCE开发教程&#xff08;2&#xff09;REST接口开发 华为北向网管NCE开发教程&#xff08;3&#xff09;CORBA协议开发 华为北向网管NCE开发教程&#xff08;4&#xff09;&#xff08;源代码接口…

网络地址转换协议NAT

网络地址转换协议NAT NAT的定义 NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址&#xff08;即仅在本专用网内使用的专用地址&#xff09;&#xff0c;但现在又想和因…

如何打造定制化企业内训系统?企培源码开发实战教学

在当今竞争激烈的商业环境中&#xff0c;企业内训系统的建立和定制化已成为提高企业竞争力和员工素质的关键。本文将探讨如何打造定制化企业内训系统&#xff0c;并介绍企培源码开发的实战教学。 第一步&#xff1a;需求分析与规划 建立定制化的企业内训系统之前&#xff0c…

echarts绘制雷达图

<template><div><div>【云端报警风险】</div><div ref"target" class"w-full h-full" stylewidth&#xff1a;200px;height:300px></div></div> </template><script setup> import { ref, onMounte…

【漏洞复现】Salia PLCC cPH2 远程命令执行漏洞(CVE-2023-46359)

0x01 漏洞概述 Salia PLCC cPH2 v1.87.0 及更早版本中存在一个操作系统命令注入漏洞&#xff0c;该漏洞可能允许未经身份验证的远程攻击者通过传递给连接检查功能的特制参数在系统上执行任意命令。 0x02 测绘语句 fofa&#xff1a;"Salia PLCC" 0x03 漏洞复现 ​…

为什么GPU对于人工智能如此重要?

GPU在人工智能中相当于稀土金属&#xff0c;甚至黄金&#xff0c;它们在当今生成式人工智能时代中的作用不可或缺。那么&#xff0c;为什么GPU在人工智能发展中如此重要呢&#xff1f; GPU概述 什么是GPU 图形处理器&#xff08;GPU&#xff09;是一种通常用于进行快速数学计…

学习Java的第六天

目录 一、变量 1、变量的定义 2、变量的声明格式 3、变量的注意事项 4、变量的作用域 二、常量 三、命名规范 Java 语言支持如下运算符&#xff1a; 1、算术运算符 解析图&#xff1a; 示例&#xff1a; 2、赋值运算符 解析图&#xff1a; 示例&#xff1a; 3、关…

Midjourney绘图欣赏系列(十)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子&#xff0c;它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同&#xff0c;Midjourney 是自筹资金且闭源的&#xff0c;因此确切了解其幕后内容尚不…

pip 和conda 更换镜像源介绍

1、前言 很多深度学习的项目免不了安装库文件、配置环境等等&#xff0c;如果利用官方提供的连接&#xff0c;网速很慢&#xff0c;而且很容易download掉。 所以配置好了虚拟环境&#xff0c;将pip换源属实重要 常见的国内镜像源有清华、中科大、阿里等等... 这里建议用中科…