使用 Python 数据写入 Excel 工作表

在数据处理和报告生成等工作中,Excel 表格是一种常见且广泛使用的工具。然而,手动将大量数据输入到 Excel 表格中既费时又容易出错。为了提高效率并减少错误,使用 Python 编程语言来自动化数据写入 Excel 表格是一个明智的选择。Python 作为一种简单易学且功能强大的编程语言,其丰富的模块能够处理各种任务,包括操作 Excel 文件。通过编写 Python 代码,您可以轻松地将数据写入 Excel 表格,无论是小规模的数据集还是大规模的数据处理,使用 Python 自动化数据写入过程都可以大大提高工作效率,减少人为错误的发生。

本文中将介绍如何使用 Python 写入数据到 Excel 表格,提供更高效和准确的 Excel 表格数据写入方案,从而简化数据处理流程并节省宝贵的时间和精力。本文主要包含以下几个方面:

  • Excel 数据写入相关介绍
  • 通过 Python 写入文本或数值到 Excel 单元格
  • 通过 Python 写入数组到 Excel 工作表
  • 通过 Python 写入 CSV 数据到 Excel 工作表
  • 通过 Python 写入 XML 数据到 Excel 工作表

本文所使用的方法需要用到 Spire.XLS for Python,可从官网下载或通过 PyPI 安装:

pip install Spire.XLS

Excel 数据写入相关介绍

  • 本文所使用的 API 中,使用 Workbook 类来代表一个 Excel 工作簿。在操作 Excel 工作簿时,可以使用该类下的 LoadFromFile() 方法从文件读取 Excel 工作簿进行操作或直接通过创建 Workbook 的对象从而创建工作簿进行操作。需要注意的是,新建的 Excel 工作簿默认有三个工作表。
  • 同时,该 API 还提供 Worksheet 类和一系列方法、属性来对工作表及其中的单元格数据、格式等内容进行操作。
  • 表格数据的主要来源有 CSV 文件、文本、数组、XML 文件等。当我们需要制作报告等方便查看和分析的表格时,通过程序将这些类型的表格数据写入到 Excel 表格中可以实现高效精确的表格生成。
  • Worksheet.Range[str] 属性用于获取指定单元格或指定单元格范围。其中,单元格和单元格范围的表示方法与 Excel 相同,即 “字母 + 数字” 表示单元格,“字母 + 数字:字母 + 数字” 表示单元格范围,如 “A1” 和 “A1:C3”。
  • Workbook.SaveToFile(str, FileFormat) 方法用于保存 Excel 工作簿到文件,可将 FileFormat 枚举类型作为参数设置保存的文件格式。

通过 Python 写入文本或数字数据到 Excel 单元格

使用 Workbook 类直接创建 Excel 工作簿或载入工作簿之后,可以使用该类下的方法设置格式及写入数据。以下是写入文本或数值到 Excel 单元格操作示例:

  1. 导入所需模块。
  2. 创建 Workbook 类的对象以创建 Excel 工作簿。
  3. 使用 Workbook.Worksheets.Clear() 方法删除默认的工作表,并使用 Workbook.Worksheets.Add() 方法新建一个工作表。
  4. 通过 Worksheet 类下的属性设置单元格格式。
  5. 通过 Worksheet.Range[].Text 属性添加文本或数值到指定单元格。
  6. 使用 Workbook.SaveToFile() 方法保存工作簿到文件并关闭工作簿。

代码示例:

from spire.xls import Workbook
from spire.xls import Worksheet
from spire.xls import FileFormat# 创建Excel工作簿
workbook = Workbook()# 删除工作表并创建新的工作表
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add("成员信息")# 设置单元格格式
worksheet.Range["A1:D1"].Style.Font.IsBold = True
worksheet.Rows[0].RowHeight = 30
worksheet.Range["A1:D1"].Style.Font.Size = 12
worksheet.Range["A2:D4"].Style.Font.Size = 11# 写入表头数据
worksheet.Range["A1"].Text = "序号"
worksheet.Range["B1"].Text = "姓名"
worksheet.Range["C1"].Text = "年龄"
worksheet.Range["D1"].Text = "职业"# 写入其他数据
worksheet.Range["A2"].Text = "1"
worksheet.Range["A3"].Text = "2"
worksheet.Range["A4"].Text = "3"worksheet.Range["B2"].Text = "约翰"
worksheet.Range["B3"].Text = "乔伊"
worksheet.Range["B4"].Text = "迈克"worksheet.Range["C2"].Text = "35"
worksheet.Range["C3"].Text = "28"
worksheet.Range["C4"].Text = "42"worksheet.Range["D2"].Text = "工程师"
worksheet.Range["D3"].Text = "律师"
worksheet.Range["D4"].Text = "医生"# 保存工作簿
workbook.SaveToFile("output/写入数据到单元格.xlsx", FileFormat.Version2016)
workbook.Dispose()

输出的 Excel 工作簿:

通过 Python 写入数组到 Excel 工作表

使用 Worksheet.InsertArray(arrObject: List[], firstRow: int, firstColumn: int, isVertical: bool) 方法可以插入数组到 Excel 工作表中,同时可设置插入的位置及方式。以下是操作步骤介绍:

  1. 导入所需模块。
  2. 创建 Workbook 对象以创建 Excel 工作簿。
  3. 使用 Workbook.Worksheets.Clear() 方法清除默认的工作表,并使用 Workbook.Worksheets.Add() 方法新建一个名为 "销售数据" 的工作表。
  4. 使用 Worksheet 类下的属性设置单元格格式。
  5. 创建一个二维数组 tableArray,其中包含要插入到工作表的数据。
  6. 遍历二位数组的每一个列表,使用 Worksheet.InsertArray() 方法将列表中的数据插入到工作表的指定单元格中。
  7. 使用 Workbook.SaveToFile() 方法将工作簿保存到指定的文件中并关闭工作簿。

代码示例:

from spire.xls import Workbook
from spire.xls import FileFormat# 创建Excel工作簿
workbook = Workbook()# 清除默认工作表并新建工作表
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add("销售数据")# 设置单元格格式
worksheet.Range["A1:D1"].Style.Font.IsBold = True
worksheet.Rows[0].RowHeight = 30
worksheet.Range["A1:D1"].Style.Font.Size = 12
worksheet.Range["A2:D4"].Style.Font.Size = 11# 数组
tableArray = [["日期", "产品", "销售额"],["20220101", "产品A", "1000"],["20220101", "产品B", "1500"],["20220102", "产品A", "1200"],["20220102", "产品B", "1800"],["20220103", "产品A", "900"],["20220103", "产品B", "1600"]
]# 将数据逐行插入工作表
i = 1
for array in tableArray:worksheet.InsertArray(array, i, 1, False)# 保存工作簿
workbook.SaveToFile("output/写入数组到工作表.xlsx", FileFormat.Version2016)
workbook.Dispose()

输出的 Excel 工作簿:

通过 Python 写入 CSV 数据到 Excel 工作表

在将 CSV 数据写入 Excel 表格时,我们可以直接使用 Workbook.LoadFromFile () 方法载入 CSV 文件并保存为 XLSX 格式,从而将 CSV 文件直接转换为 Excel 工作簿。再载入 CSV 文件时,可通过分隔符作为参数来载入不同分隔符的 CSV 表格。以下是操作示例:

  1. 导入所需模块。
  2. 创建 Workbook 类的对象。
  3. 使用 Workbook.LoadFromFile() 方法载入 CSV 文件。
  4. 使用 Workbook.SaveToFile() 方法将 CSV 文件保存为 Excel 工作簿。

代码示例:

from spire.xls import Workbook
from spire.xls import FileFormat# 创建Workbook类的对象
workbook = Workbook()# 载入CSV文件
workbook.LoadFromFile("销量统计.csv", ",")# 保存为Excel工作簿
workbook.SaveToFile("output/写入CSV数据到工作表.xlsx", FileFormat.Version2016)
workbook.Dispose()

保存结果: 

通过 Python 写入 XML 数据到 Excel 工作表

写入 XML 数据到 Excel 工作表需要读取 XML 数据,然后先将表头写入工作表,然后再写入对应数据到单元格中。需要根据 XML 表格数据的结构调整代码进行写入。 下面是操作步骤介绍:

  1. 导入模块。
  2. 创建一个 Workbook 类的对象。
  3. 清除默认工作表并使用 Workbook.Worksheets.Add(str Name) 方法添加一个工作表。
  4. 设置工作表的单元格格式。
  5. 加载 XML 数据,使用 xml.etree.ElementTree 模块的 parse 方法解析 XML 文件,获取根元素和子元素。
  6. 获取第一个 student 节点来确定列数和表头。
  7. 写入表头,通过迭代表头节点并将其作为列标题写入工作表。
  8. 写入数据,通过迭代每个学生节点和对应的数据节点,使用 Worksheet.SetValue(int rowIndex, int columnIndex, str Valuw) 将数据值写入工作表。
  9. 使用 SaveToFile 方法将工作簿保存为指定路径的 Excel 文件并释放资源。

代码示例:

from spire.xls import *
from spire.common import *
import xml.etree.ElementTree as ET# 创建一个Workbook类的对象
workbook = Workbook()# 清除默认工作表并添加一个工作表
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add("学生信息")# 设置单元格格式
for i in range(len(worksheet.Columns)):col = worksheet.Columns.get_Item(i)col.ColumnWidth = 10# 加载 XML 数据
xml_tree = ET.parse("学生信息.xml")
xml_root = xml_tree.getroot()# 获取第一个order节点来确定列数和表头
first_student = xml_root.find("student")
header = list(first_student.iter())[1:]  # 跳过第一个节点# 写入表头
for col_index, header_node in enumerate(header, start=1):header_text = header_node.tagworksheet.SetValue(1, col_index, header_text)# 写入数据
row_index = 2
for student in xml_root.iter("student"):for col_index, data_node in enumerate(list(student.iter())[1:], start=1):  # 跳过第一个节点value = data_node.textheader_text = list(header[col_index - 1].iter())[0].tagworksheet.SetValue(row_index, col_index, value)row_index += 1# 保存工作簿为新的 Excel 文件
workbook.SaveToFile("output/写入XML到工作表.xlsx")
workbook.Dispose()

部分 XML 数据:

<?xml version="1.0" encoding="UTF-8"?>
<students><student><id>1</id><name>John Doe</name><major>Data Science</major><gpa>3.8</gpa><age>20</age><gender>Male</gender><contact><email>john.doe@example.com</email><phone>123-456-7890</phone></contact></student>

输出的 Excel 工作簿:

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

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

相关文章

【nginx实战】nginx正向代理、反向代理、由反向代理实现的负载均衡、故障转移详解

文章目录 一. 正向代理与反向代理的概念二. Nginx服务器的正向代理服务1. Nginx服务器正向代理服务的配置的3个指令1.1. resolver指令1.2. resolver_timeout指令1.3. proxy_pass指令 2. Nginx服务器正向代理服务的使用 三. Nginx服务器的反向代理服务1. 反向代理的基本指令1.1.…

docker使用笔记

最近在使用docker配置小米cyberdog2的环境&#xff0c;记录一下常用的命令&#xff0c;以备今后查阅。 0. 基本概念 Dockerfile&#xff1a;环境的配置信息&#xff0c;里面描述了你想要搭建的环境的信息。 Image(镜像)&#xff1a;类比我们装虚拟机/操作系统时需要的系统镜像…

git本地分支的合并/切换分支时遇到的问题

目录 第一章、本地分支的切换测试1.1&#xff09;切换之前的master分支下文件内容1.2&#xff09;切换到develop分支后修改文件1.3&#xff09;切回master分支出现报错&#xff1a; 第二章、解决方式2.1&#xff09;方式1&#xff1a;commit提交修改2.2&#xff09;方式2&#…

设计模式—行为型模式之命令模式

设计模式—行为型模式之命令模式 命令&#xff08;Command&#xff09;模式&#xff1a;将一个请求封装为一个对象&#xff0c;使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通&#xff0c;这样方便将命令对象进行储存、传递、调用、增加与管理。 …

告别无法访问的Github

告别无法访问的Github 最近在使用github的时候又登不上去了&#xff0c;挂着VPN都没用 但是自己很多项目都存在github&#xff0c;登不上去那不得损失很大 所以一行必须整点儿特殊手段来访问&#xff0c;顺便分享一下 1.加速器 网上很多解决方案都是在分享各种加速器来登陆…

有效的括号[简单]

>优质博文&#xff1a;IT-BLOG-CN 一、题目 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串s&#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 【1】左括号必须用相同类型的右括号…

春招冲刺第二天——SQL学习

春招冲刺第二天 前言 MySQL学习&#xff1a;哔哩哔哩参考视频&#xff1a; 【中字】SQL进阶教程 | 史上最易懂SQL教程&#xff01;10小时零基础成长SQL大师 第一章 Mysql安装 视频前三节有教程&#xff0c;或自行查阅&#xff0c;不做赘述 课程资料和数据库数据的网盘&…

第八篇 交叉编译华为云Iot SDK到Orangepi3B

本篇主要内容&#xff1a; 一、交叉编译华为云Iot SDK依赖1.宿主机安装交叉编译工具链&#xff08;1&#xff09;选择下载交叉编译工具链&#xff08;2&#xff09;解压、添加环境变量、重启2.交叉编译依赖库&#xff08;0&#xff09; 准备工作&#xff08;1&#xff09; 交叉…

【多商户开源-BSD- Fecmall 电商平台】

关于Fecmall Fecmall 关于&#xff0c;Fecmall介绍 Fecbbc开源BSD多商户系统&#xff0c;真正开源&#xff0c;商用免费授权的多商户系统 Fecmall系统简介&#xff1a; 全称为Fancy ECommerce Shop&#xff0c; 着重于电商架构的研发优化&#xff0c;全新定义商城的架构体系&…

在Spring Boot中使用ZXing开源库生成带有Logo的二维码

在上一篇文章的基础上&#xff0c;我们将进一步扩展功能&#xff0c;实现在生成的二维码中嵌入Logo图片。这样的二维码更具个性化和识别度。让我们逐步完成这个功能。 第一步&#xff1a;引入Logo图片 首先&#xff0c;准备一张用作Logo的图片&#xff0c;并确保它的大小适中…

HIS项目介绍、项目环境准备、版本控制介绍、Git基础、Git指针、Git分支、Git标签

案例1&#xff1a;项目环境准备 环境准备说明&#xff1a; 本阶段共使用虚拟机6台&#xff0c;操作系统使用RockyLinux8.6 环境准备要求&#xff1a; 最小化安装即可配置好主机名和IP地址搭建好yum源关闭防火墙和SELinux!!! 项目主机列表 主机名IP地址规格角色服务Progra…

上位机图像处理和嵌入式模块部署(windows opencv)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 opencv可以运行在多个平台上面&#xff0c;当然windows平台也不意外。目前来说&#xff0c;opencv使用已经非常方便了&#xff0c;如果不想自己编译…

红黑树浅浅学习

红黑树浅浅学习 红黑树概念红黑树平衡性调整 红黑树概念 二叉树&#xff1a;二叉树是每个节点最多有两个子树的树结构。二叉查找树&#xff1a;又称“二叉搜索树”&#xff0c;左孩子比父节点小&#xff0c;右孩子比父节点大&#xff0c;还有一个特性就是”中序遍历“可以让结…

初识SQL注入

目录 注入攻击 SQL注入 手工注入 Information_schema数据库 自动注入 介绍一下这款工具&#xff1a;sqlmap 半自动注入 前面给大家通过学习练习的方式将XSS攻击的几种形式和一些简单的靶场和例题的演示&#xff0c;从本篇开始我将和小伙伴们通过边复习、边练习的方式来进…

深入浅出hdfs-hadoop基本介绍

一、Hadoop基本介绍 hadoop最开始是起源于Apache Nutch项目&#xff0c;这个是由Doug Cutting开发的开源网络搜索引擎&#xff0c;这个项目刚开始的目标是为了更好的做搜索引擎&#xff0c;后来Google 发表了三篇未来持续影响大数据领域的三架马车论文&#xff1a; Google Fil…

猫用空气净化器哪些好?五款宠物空气净化推荐!

如今&#xff0c;养宠物的家庭越来越多了&#xff01;家里因此变得更加温馨&#xff0c;但同时也会带来一些问题&#xff0c;比如异味和空气中的毛发可能会对健康造成困扰。 为了避免家中弥漫着异味&#xff0c;特别是来自宠物便便的味道&#xff0c;一款能够处理家里异味的宠…

【大数据】YARN调度器及调度策略

YARN调度器 YARN负责作业资源调度&#xff0c;在集群中找到满足业务的资源&#xff0c;帮助作业启动任务&#xff0c;管理作业的生命周期。 ​ YARN技术架构 ​ 目前&#xff0c;Hadoop作业调度器主要有三种&#xff1a;先进先出调度器&#xff08;First In First Out&…

【正点原子STM32】搭建开发环境(安装MDK和器件支持包、DAP仿真器和ST LINK仿真器、CH340串口驱动)

一、常用开发工具简介 MDKDAP 二、安装MDK 1、MDK简介2、如何获取MDK3、安装MDK和器件支持包 三、安装仿真器驱动 DAP仿真器免驱ST LINK仿真器驱动安装方法 ST LINK驱动及教程 四、安装CH340 USB虚拟串口驱动 1、安装CH340 USB虚拟串口驱动2、为什么要安装CH340 USB虚拟…

Google ASPIRE框架:赋予大型语言模型(LLMs)自我评估的新动力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

springboot 整合 ElasticSearch 方法 (一)

下载 ES 相当于安装 MySQL, 可以在官网上下载 (链接在后面). 要注意安装的 ES 的版本要和项目中用的 Springboot 的版本对应. 比如我用的 Springboot 版本是 2.6, 所以ES要下载7.15 版本的. 官网链接: https://www.elastic.co/cn/downloads/elasticsearch 点右边这个查看更多…