Python:使用openpyxl读取Excel文件转为json数据

这篇具有很好参考价值的文章主要介绍了Python:使用openpyxl读取Excel文件转为json数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files

文档

  • https://openpyxl.readthedocs.io/en/stable/
  • https://pypi.org/project/openpyxl/

安装

pip install openpyxl

环境

$ python --version
Python 3.7.0

读取文件示例:将Excel文件读取为json数据

有如下一个文件 data.xlsx
Python:使用openpyxl读取Excel文件转为json数据,Python,python,excel,json

实现代码

# -*- coding: utf-8 -*-

import json

from openpyxl.reader.excel import load_workbook


def read_excel(filename):
    book = load_workbook(filename)
    worksheet = book.worksheets[0]

    row_num = 0
    titles = []
    lst = []

    for row in worksheet.rows:
        row_num += 1

        if row_num == 1:
            # 表头
            for cell in row:
                # 移除空格
                value = cell.value.replace(' ', '')
                titles.append(value)
        else:
            # 内容
            item = {}
            for key, cell in zip(titles, row):
                item[key] = cell.value

            lst.append(item)

    return lst


if __name__ == '__main__':
    data = read_excel('./data.xlsx')
    print(json.dumps(data, ensure_ascii=False, indent=2))

输出读取的json数据

[
  {
    "姓名": "曹操",
    "国家": "魏国"
  },
  {
    "姓名": "刘备",
    "国家": "蜀国"
  },
  {
    "姓名": "孙权",
    "国家": "吴国"
  }
]

读写示例文章来源地址https://www.toymoban.com/news/detail-607092.html

# -*- coding: utf-8 -*-
"""
@File    : excel_util.py
@Date    : 2023-11-16
"""
import re

from openpyxl import Workbook
from openpyxl.reader.excel import load_workbook
from openpyxl.utils import get_column_letter


def read_excel(filename):
    """
    读取excel文件为python对象
    :param filename:
    :return: iterator
    """
    book = load_workbook(filename)
    worksheet = book.worksheets[0]

    titles = []
    row_num = 0

    for row in worksheet.rows:
        row_num += 1

        if row_num == 1:
            # 表头
            titles = [cell.value.strip() for cell in row]
        else:
            # 内容
            yield dict(zip(titles, [cell.value for cell in row]))

    book.close()


def write_excel(filename, rows):
    """
    将列表写入到文件
    :param filename:
    :param rows: list
    :return:
    """
    workbook = Workbook()
    worksheet = workbook.active


    # 表头
    if len(rows) > 0:
        for i, key in enumerate(rows[0].keys()):
            worksheet.cell(row=1, column=i + 1, value=key)

    # 内容
    for x, row in enumerate(rows):
        for y, value in enumerate(row.values()):
            worksheet.cell(row=x + 2, column=y + 1, value=value)

    # 调整列宽
    # 参考:https://blog.csdn.net/gongzairen/article/details/130819231
    width = 3  # 手动加宽的数值
    # 单元格列宽处理
    dims = {}
    for row in worksheet.rows:
        for cell in row:
            if cell.value:
                cell_len = 0.7 * len(re.findall('([\u4e00-\u9fa5])', str(cell.value))) + len(str(cell.value))
                dims[cell.column] = max((dims.get(cell.column, 0), cell_len))

        for col, value in dims.items():
            worksheet.column_dimensions[get_column_letter(col)].width = value + width

    workbook.save(filename)
    workbook.close()

到了这里,关于Python:使用openpyxl读取Excel文件转为json数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python使用openpyxl添加图片到excel文件中

    图片只能保存在某个sheet页面中,因此首先打开sheet页面: 然后创建一个图片: 最后保存即可: 最后的效果如下:

    2024年02月22日
    浏览(34)
  • Python——openpyxl读取Excel表格(读取、单元格修改、单元格加底色)

    🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:一晌小贪欢的博客主页 👍 该系列文章专栏:Python办公自动化专栏 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 ❤️ 欢迎各位佬关注! ❤️ 如我在K列,增加了

    2024年03月20日
    浏览(31)
  • 利用MATLAB读取.nc文件单像元数值并转为Excel格式(以中国日降雨量月均数据为例)

     以中国日降雨量月均数据(nc文件包含12月)为例,提取某经纬度下的多月份像元值。 (【数据分享】1960-2020年中国1公里分辨率月降水数据集) 一、确定经纬度所在行列 号 以 92.18E,30.475N 为例,首先在Matlab中输入以下代码: 工作区获取到lat、lon和pre的信息,打开lat和lon文件

    2024年02月07日
    浏览(32)
  • pandas读取Excel核心源码剖析,面向过程仿openpyxl源码实现Excel数据加载

    📢作者: 小小明-代码实体 📢博客主页:https://blog.csdn.net/as604049322 📢欢迎点赞 👍 收藏 ⭐留言 📝 欢迎讨论! 今天我们将研究pandas如何使用openpyxl引擎读取xlsx格式的Excel的数据,并考虑以面向过程的形式简单的自己实现一下。 截止目前本人所使用的pandas和openpyxl版本为:

    2023年04月19日
    浏览(45)
  • Python处理xlsx文件(读取、转为列表、新建、写入数据、保存)

    xlsxwriter**库对于xslx表的列数不做限制, xlrd 库不能写入超过65535行,256列的数据。 由于需要处理的数据行列数较多,遇到报错才发现库的限制问题,记录一下。

    2024年02月12日
    浏览(39)
  • python读取Excel指定范围并转为数组

            最近需要读取Excel中的内容,然后进行后续操作,对于这块知识,博主以前以为自己不会涉及到,但是现在一涉及到,第一步就错了,搞了好久。真的心累。因此写了这篇博客。  目的:excel中存放着数据,如果要进行计算及其它操作,首先就要进行读取。 目录 安装

    2023年04月12日
    浏览(31)
  • 【办公自动化】使用Python批量处理Excel文件并转为csv文件

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 前言 一、Python处理Excel 二、批量处理Excel文件并转为csv文件 三、往期推荐          

    2024年02月10日
    浏览(33)
  • Python模块openpyxl & 操作Excel文件

    简介         openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。openpyxl以Python语言和MIT许可证发布。         openpyxl可以处理Excel文件中的绝大多数内容,包括图表、图像和公式。它可以处理大量数据,支持Pandas和NumPy库导入和导出数据。Openpyxl还支持自

    2024年02月10日
    浏览(32)
  • 【一种使用浏览器读取本地excel、josn等数据文件的方法】Python+JavaScript+HTML实现

    一般来说,为了网络访问安全,浏览器是不能直接加载本地文件的,IE内核的浏览器提供了AX控件实现本地文件的读取,Chrome 86 版本后也提供了相应的API,但都存在使用限制和兼容性问题。有时开发者只是想利用浏览器编制一些简单的脚本完成一些任务,不想学习C、C++、Pyt

    2024年02月07日
    浏览(44)
  • Python读取写入数据到Excel文件

    【Linux干货教程】Ubuntu Linux 换源详细教程 大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! Hello,各位看官老爷们好,洲洲已

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包