在数据处理和报告生成等工作中,Excel表格是一种常见且广泛使用的工具。然而,手动将大量数据输入到Excel表格中既费时又容易出错。为了提高效率并减少错误,使用Python编程语言来自动化数据写入Excel表格是一个明智的选择。Python作为一种简单易学且功能强大的编程语言,其丰富的模块能够处理各种任务,包括操作Excel文件。通过编写Python代码,您可以轻松地将数据写入Excel表格,无论是小规模的数据集还是大规模的数据处理,使用Python自动化数据写入过程都可以大大提高工作效率,减少人为错误的发生。
本文中将介绍如何使用Python写入数据到Excel表格,提供更高效和准确的Excel表格数据写入方案,从而简化数据处理流程并节省宝贵的时间和精力。本文主要包含以下几个方面:
本文所使用的方法需要用到Spire.XLS for Python,可从官网下载或通过PyPI安装:pip install Spire.XLS
。
使用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工作簿:
使用 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)
i += 1
# 保存工作簿
workbook.SaveToFile("output/写入数组到工作表.xlsx", FileFormat.Version2016)
workbook.Dispose()
输出的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()
保存结果:
写入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表格,包括文本、数组、XML、CSV等。通过Python代码,我们可以轻松地保存各种数据到Excel工作表中,实现批量操作,快速生成视觉友好地电子表格。Spire.XLS for Python还支持许多其他功能,可前往Spire.XLS for Python教程查看。