Python 读取写入excel文件

news2024/11/16 20:53:21

使用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).value
            lineList.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 os


def 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).value
                lineList.append(value)
            sheetInfo.append(lineList)

        # 存入字典
        dic[sheetName] = sheetInfo
    return dic


path = 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 os


def read_xls_xlsx(path):
    dic = OrderedDict()
    getData = get_data(path)
    for sheet in getData:
        dic[sheet] = getData[sheet]

    return dic

path = 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] = sheetValue
        dic.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.coloradmin.cn/o/1499676.html

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

相关文章

SSL 证书,了解一下常识

公司的网站、应用怎么才能保证在互联网上安全运行,不被攻击、盗取数据呢? 创业必经之路,一步一步走就对了,可能没赶上红利期,但不做就等于0。 概述 SSL 证书(SSL Certificates)又称数字证书&am…

3/7—21. 合并两个有序链表

代码实现: 方法1:递归 ---->难点 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* mergeTwoLists(struct ListNode *list1, struct ListNode *list2) {/*1.如果l1为…

Vivado使用记录(未完待续)

一、Zynq开发流程 二、软件安装 三、软件使用 字体大小修改:Setting、Font 四、Vivado基本开发流程 1、创建工程 Quick Start 组包含有 Create Project(创建工程)、 Open Project(打开工程)、 Open Example Project&…

智慧视频终端解决方案

依托富瀚微智慧视频SOC,提供以视频为核心的智能产品及解决方案

ubuntu設定QGC獲取pixhawk Mini4(PX4 Mini 4) 的imu信息

ubuntu20.04 QGC使用v4.3.0的版本 飛控pixhawk Mini4 飛控上只使用一條micor USB連接電腦,沒有其他線 安裝命令 sudo apt-get remove modemmanager -y sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y sudo apt install libf…

邮件营销新手必读指南?怎样做好邮件营销?

邮件营销的全流程及步骤?做好邮件营销有哪些注意点? 邮件营销作为一种传统却依然高效的推广手段,被众多企业所青睐。对于新手来说,如何开展邮件营销,却是一个值得探讨的话题。AokSend将为你提供一份邮件营销新手必读指…

Java面试题总结10之MySQL索引和锁

索引的基本原理 把无需的数据变成有序的查询 1,把创建了索引的列的内容进行排序 2,对排序结果生成倒排表 3,到倒排表内容上拼上数据地址链 4,在查询的时候,先拿到倒排表内容,再取出数据地址链&#xf…

【HarmonyOS】ArkTS-函数

目录 函数-Function函数基本使用函数的参数箭头函数 函数-Function 函数:是可以被重复使用的代码块 作用:函数可以把具有相同或相似逻辑的代码“包裹”起来,有利于代码复用。 函数基本使用 定义函数 function 函数名() { 函数体 }调用函数 …

白酒:蒸馏技术的优化与新型蒸馏设备的研发

蒸馏技术是豪迈白酒生产中的重要环节,直接关系到产品的质量和风格。云仓酒庄在蒸馏技术的优化和新型蒸馏设备的研发方面进行了大量探索和实践,旨在提升白酒的品质和口感。 首先,蒸馏技术的优化对于豪迈白酒的品质至关重要。传统的蒸馏技术通常…

0环PEB断链

在操作系统层面上,进程本质上就是一个结构体,当操作系统想要创建一个进程时,就分配一块内存,填入一个结构体,并为结构体中的每一项填充一些具体值。而这个结构体,就是EPROCESS 在0x088 偏移处有一个指针Act…

关于JVM的小总结(待补充)

JVM组成及他们之间的关系 装载类子系统字节码执行引擎运行时数据区 装载类子系统 类加载器字节码调节器类加载运行时数据区 字节码执行引擎 运行时数据区 线程私有 虚拟机栈本地方法栈程序计数器 线程共享 堆方法区(元空间)

基于Vue的分类招生App设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 绪论 3 1.1 项目的研究背景与意义 3 1.1 研究背景 31.2 研究意义 3 1.2 研究现状 4 1.3 技术简介 43.1 前端开发技术 43.2 服务端开发技术 53.3 数据库 6 1.4 本章小结 6 2 项目…

MercadoLibre(美客多)运营策略:补单操作的重要性与条件要求

在美客多平台上,许多商家普遍认为,店铺的重要性远超产品本身,同时竞争环境也显得相对宽松。因此,他们倾向于认为在美客多进行补单操作并非必要之举。然而,深入剖析美客多平台的运营规则后,我们不难发现补单…

基于springboot的大学生智能消费记账系统的设计与实现(程序+数据库+文档)

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…

nestjs10.x使用jwt生成token

1 安装依赖: pnpm install --save nestjs/jwtpnpm install passport passport-jwt nestjs/jwtpnpm install types/passport-jwt --save-dev 2 可以使用命令新建auth鉴权文件夹 nest g mo auth // auth.module.ts nest g s auth // auth.service.ts nest g co …

记录 | mac报错:not prividing “FindClang.cmake“

报错: CMake Error at CMakeLists.txt:72 (find_package): By not providing "FindClang.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Clang", but CMake did not find one.…

香橙派AIpro外设接口样例大全(附源码)

Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能 AI 开发板,其搭载了昇腾 AI 处理器,可提供 8TOPS INT8 的计算能力,内存提供了 8GB 和 16GB两种版本。可以实现图像、视频等多种数据分析与推理计算,可广泛用于教育、机器…

视频水印怎么轻松去除?这三款神器让您直呼过瘾!

在现代社会,视频内容日益丰富多样,但有时我们更希望获得视频中的文字文稿,以便于搜索、编辑或传播。下面我将为您介绍三款优秀的视频转文字工具,它们能够帮助您快速、准确地将视频内容转换为可编辑的文字格式。让我们一起来看看这…

【开源】SpringBoot框架开发快乐贩卖馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 搞笑视频模块2.3 视频收藏模块2.4 视频评分模块2.5 视频交易模块2.6 视频好友模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 搞笑视频表3.2.2 视频收藏表3.2.3 视频评分表3.2.4 视频交易表 四、系…

广播

1.什么是广播 2.标准广播 BroadStandardActivity.java package com.tiger.chapter09;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.View;…