如何通过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单元格操作示例:

  • 导入所需模块。
  • 创建 Workbook 类的对象以创建Excel工作簿。
  • 使用 Workbook.Worksheets.Clear() 方法删除默认的工作表,并使用 Workbook.Worksheets.Add() 方法新建一个工作表。
  • 通过 Worksheet 类下的属性设置单元格格式。
  • 通过 Worksheet.Range[].Text 属性添加文本或数值到指定单元格。
  • 使用 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工作簿:
写入文本到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)i += 1# 保存工作簿
workbook.SaveToFile("output/写入数组到工作表.xlsx", FileFormat.Version2016)
workbook.Dispose()

输出的Excel工作簿:
写入数组到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()

保存结果:
CSV保存为Excel

通过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工作簿:
XML写入Excel工作表

总结
本文介绍了如何使用Python将各种数据保存为Excel表格,包括文本、数组、XML、CSV等。通过Python代码,我们可以轻松地保存各种数据到Excel工作表中,实现批量操作,快速生成视觉友好地电子表格。Spire.XLS for Python还支持许多其他功能,可前往Spire.XLS for Python教程查看。

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

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

相关文章

医院信息系统集成平台—医院决策分析平台(2)

“医院决策分析系统”需求主要包括五部分工作内容:数据库设计、指标库的构建、指标数据的采集、指标分析及展现。 指标加工逻辑架构 下图描述的是物理的数据存储与业务上的指标库之间的映射关系。事实上,整个“指标库”建立和管理的核心问题就是,业务人员所使用的指标与物…

SpringCloud Alibaba之Nacos配置中心配置详解

目录 Nacos配置中心数据模型Nacos配置文件加载Nacos配置 Nacos配置中心数据模型 Nacos 数据模型 Key 由三元组唯一确定&#xff0c;三元组分别是Namespace、Group、DataId&#xff0c;Namespace默认是公共命名空间&#xff08;public&#xff09;&#xff0c;分组默认是 DEFAUL…

任务调度知识点

任务调度 定时任务调度 定时任务调度在项目开发中是一种不可缺少的需求&#xff0c;在Java中&#xff0c;实现任务调度有三种方式&#xff0c;分别是jdk自带的任务定时工具Timer、Spring task、第三方组件Quartz,接下来细聊这三种方式。 方式一、Timer&#xff08;JDK自带任…

BUUCTF crypto做题记录(5)新手向

一、传统知识古典密码 加上一个数&#xff0c;就有点移位加密的味道&#xff0c;很有可能就是凯撒加密 辛卯28&#xff0c;癸巳30&#xff0c;丙戌23&#xff0c;辛未8&#xff0c;庚辰17&#xff0c;癸酉10&#xff0c;己卯16&#xff0c;癸巳30 加1之后&#xff0c;28变29&a…

Unity之预制体与变体

PS:不用说了&#xff0c;我在写博客就是在摸鱼 一、预制体 不知道大家小时候有没有看过火影&#xff0c;记得剧情最开始的时候水木哄骗鸣人去偷封印之书&#xff0c;反而让鸣人学会了多重影分身之术&#xff1a; 好了&#xff0c;小编绞尽脑子终于想好怎么向大家介绍预制体了&a…

白酒详解及推荐

一、白酒分类 &#xff08;1&#xff09;清香型 以粮谷为原料&#xff0c;经传统固态法发酵、蒸馏、陈酿、勾兑而成的&#xff0c;未添加食用酒精及非白酒发酵产生的呈香呈味物质&#xff0c;具有以乙酸乙酯为主体复合香的白酒。常见的清香型白酒&#xff1a; &#xff08;2&…

【KingbaseES】实现MySql函数Space

CREATE OR REPLACE FUNCTION SPACE(input_length integer) RETURNS text AS $$ BEGIN RETURN REPEAT( , input_length) AS SPACES; END; $$ LANGUAGE plpgsql;

02、Kafka ------ 配置 Kafka 集群

目录 配置 Kafka 集群配置步骤启动各Kafka节点 配置 Kafka 集群 启动命令&#xff1a; 1、启动 zookeeper 服务器端 小黑窗输入命令&#xff1a; zkServer 2、启动 zookeeper 的命令行客户端工具 &#xff08;这个只是用来看连接的节点信息&#xff0c;不启动也没关系&#…

python的课后练习总结4(for循环)

1&#xff0c;for循环 for 临时变量 in 序列: 重复执行的代码1 重复执行的代码2 ........... 遍历序列 字符串 我是中国人 列表 [‘星期一,星期二,星期三,星期四] 元组 (‘星期一,星期二,星期三,星期四&#xff09; 一&#xff0c;break 终止循环 二&#xff0c;con…

Keil5----生成hex文件和bin文件

Keil5编译环境搭建----教程目录 keil5----生成hex文件 具体步骤如下&#xff1a; 步骤1&#xff1a; 点击 魔法棒 “Options for Target” 。步骤2&#xff1a; 单击 Output。步骤3&#xff1a; 选择输出生成文件的路径。步骤4&#xff1a; 自定义生成的hex文件名。步骤5&am…

pytorch08:学习率调整策略

目录 一、为什么要调整学习率&#xff1f;1.1 class _LRScheduler 二、pytorch的六种学习率调整策略2.1 StepLR2.2 MultiStepLR2.3 ExponentialLR2.4 CosineAnnealingLR2.5 ReduceLRonPlateau2.6 LambdaLR 三、学习率调整小结四、学习率初始化 一、为什么要调整学习率&#xff…

【基础篇】十四、GC算法

文章目录 1、实现思路2、SWT3、GC算法4、标记清除算法Mark Sweep GC5、复制算法Copying GC5、标记整理算法6、分代算法Generational GC7、分代的整体流程 1、实现思路 Java实现垃圾回收的步骤&#xff1a; 根据GC Root对象可达性分析&#xff0c;将内存中对象标记为存活的、可…