python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python数据写入Excel

使用Python实现将数据写入Excel工作表

作者:E-iceblue

在数据处理和报告生成等工作中,Excel 表格是一种常见且广泛使用的工具,本文中将介绍如何使用 Python 写入数据到 Excel 表格,并提供更高效和准确的 Excel 表格数据写入方案,需要的可以参考下

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

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

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

pip install Spire.XLS

Excel 数据写入相关介绍

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

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

代码示例:

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 工作表中,同时可设置插入的位置及方式。以下是操作步骤介绍:

代码示例:

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 表格。以下是操作示例:

代码示例:

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 表格数据的结构调整代码进行写入。 下面是操作步骤介绍:

代码示例:

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工作表的详细内容,更多关于Python数据写入Excel的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文