在数据处理和报告生成等工作中,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.tag
worksheet.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.text
header_text = list(header[col_index - 1].iter())[0].tag
worksheet.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 工作簿:

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

使用 Python 将数据写入 Excel 工作表的更多相关文章

  1. 如何通过C++ 将数据写入 Excel 工作表

    直观的界面.出色的计算功能和图表工具,使Excel成为最流行的个人计算机数据处理软件.在独立的数据包含的信息量太少,而过多的数据又难以理清头绪时,制作成表格是数据管理的最有效手段之一.这样不仅可以方便 ...

  2. python读取数据写入excel的四种操作

    Python对Excel的读写主要有:xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种 xlutils结合xlrd: 操作的是以xls后缀的excel,读取文件保留原格式 ...

  3. python读取数据写入excel

    '''写入excel文件''' import xlsxwriter # todo 创建excel文件 xl = xlsxwriter.Workbook(r'D:\testfile\test.xlsx' ...

  4. 使用python将数据写入excel

    先来个简单的例子: #!/usr/bin/python #coding=utf-8 # ======================================================== ...

  5. Python将数据写入excel或者txt,读入csv格式或xls文件,写入csv(写一行空一行解决办法)

    1.写入excel,一开始不需要自己新建一个excel,会自动生成 attribute_proba是我写入的对象 import xlwt myexcel = xlwt.Workbook() sheet ...

  6. python 将数据写入excel

    摘要链接: python第三方库——xlrd和xlwt操作Excel文件学习 :http://blog.csdn.net/wangkai_123456/article/details/50457284 ...

  7. python将数据写入excel代码,python与office交互

    # -*- coding: utf-8 -*- from smartframe.header import * import pymysql import json import importlib, ...

  8. Python:将爬取的网页数据写入Excel文件中

    Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...

  9. 初识python: xlsxwriter 将数据写入Excel

    使用 xlsxwriter 模块将数据写入excel . #!/user/bin env python # author:Simple-Sir # time:2020/9/24 12:51 # 使用 ...

  10. java数据写入Excel

    正好最近公司要写一个对账的功能,后台用java从银行获得对账信息,数据是json类型的,然后写入excel中发送给一卡通中心的服务器上,网上找了很多代码,然后整合和改正,代码如下. import ja ...

随机推荐

  1. 13. 从零开始编写一个类nginx工具, HTTP中的压缩gzip,deflate,brotli算法

    wmproxy wmproxy将用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,后续将实现websocket代理, 内外网穿透等, 会将实现过程分享出来, 感 ...

  2. [C++]P5024 树形DP 保卫王国

    树形DP 保卫王国P5024 前置知识 1.邻接表 + Dfs(深度优先搜索) 2.基础DP(如 01背包 ) 3.最小公共祖先(LCA) LCA我有写过Blog 首先解读一下题意 城市即为节点 每个 ...

  3. 推理(Inference)与预测(Prediction)

    在机器学习的背景下,很多人似乎混淆了这两个术语.这篇文章将试图澄清我们所说的这两个词是什么意思,每一个词在哪里有用,以及它们是如何应用的.在这里,我将举几个例子来直观地理解两者之间的区别. 推理和预测 ...

  4. 手记系列之七 ----- 分享Linux使用经验

    前言 本篇文章主要介绍的关于本人在使用Linux记录笔记的一些使用方法和经验,温馨提示,本文有点长,约1.7w字,几十张图片,建议收藏查看. 一.Linux基础使用 1,服务器查看及时日志 tail ...

  5. PostgreSQL 序列(Sequence)

    基本操作 --新增序列 CREATE SEQUENCE xxx_id_seq INCREMENT 1 -- 一次加多少 MINVALUE 1 -- 最小值 START 1 --从多少开始 CACHE ...

  6. DocTemplateTool - 可根据模板生成word或pdf文件的工具

    你是否经常遇到这样的场景:产品运营有着大量的报告需求,或者给客户领导展现每周的运营报告?这些文档类的任务可以交给运营同事,他们负责文档排版和样式,你作为开发人员你只需要提供数据源,和一个映射表,告诉制 ...

  7. OpenGL 投光物详解

    1. 投光物 继续上一节的流程,到目前为止,我们介绍的都是点光源.但是现实世界中,光源的类型却要相对复杂一些.大概会有这么几种形式:定向光.点光源.聚光等等.  2. 定向光 当一个光源处于很远的地方 ...

  8. 题解 CF1004C

    题意描述: 给定 \(n\) 个数,从前往后找,看看能和后面的数组成多少个不同的数对. 若两个数对仅仅是位置不同,我们也认为是两个不同的数对. 题目分析: 阅读题目,我们不难看出,若前面有一个数已经出 ...

  9. Jdk_HashMap 源码 —— hash(Object)

    Jdk 源码 HashMap 的源码是在面试中考的算是比较多的,其中有很多高性能的经典写法,也值得多学习学习. 本文是本人在阅读和学习源码的过程中的笔记(不是教程),如有错误欢迎指正. Jdk Ver ...

  10. uni-app学习笔记——路由与页面跳转

    小颖最近在学习小程序,怕自己前看后忘,毕竟还没开始进入项目实践中,就自己瞎倒腾嘻嘻,今天来看下  uni-app  的路由与页面跳转,小颖就简单列举下它们的用法,具体的大家可以看官网哦!啦啦啦啦啦  ...