王檀 發表於 2025-9-22 15:38:00

国产化Excel开发组件Spire.XLS教程:Python 写入 Excel 文件,数据写入自动化实用指南

<p><img src="https://image.evget.com/attachment/keditor/image/20250922/113754_4.png"></p>
<p>Excel 是最常用的数据整理、分析和展示工具之一。无论是财务报表还是运营仪表盘,很多场景都需要将数据导出到 Excel,以便阅读和共享。相比手动输入,<strong>通过 Python 自动化写入 Excel 文件</strong>&nbsp;能让处理过程更高效、更可靠,也具备更好的扩展性。</p>
<p>在本文中,我们将介绍如何借助<strong><u>Spire.XLS</u></strong><strong>使用 Python 将数据写入 Excel 文件</strong>,内容涵盖结构化数据插入、格式设置以及数据导出。文中示例所用库支持在代码中直接创建并自定义工作簿。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Spire.XLS for Python试用下载,请联系E-iceblue-Spire授权代理商慧都科技</strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>技术交流Q群(125237868)</strong></span></p>
<h2>环境准备</h2>
<p>在 Python 中写入 Excel 文件,需要使用支持创建、加载和保存工作簿的库。<strong>Spire.XLS for Python</strong><strong>&nbsp;</strong>提供完整的 API,可以轻松实现自动化报表生成和数据处理。</p>
<p>使用 pip 安装:</p>
<pre class="prettyprint highlighter-hljs"><code>pip install spire.xls</code></pre>
<p>安装完成后,可以通过以下三种核心操作来处理 Excel 文件:</p>
<ul>
<li><strong>创建新工作簿</strong>&nbsp;– 使用&nbsp;<strong>Workbook()</strong>&nbsp;初始化 Excel 文档。</li>
<li><strong>加载现有工作簿</strong>&nbsp;– 使用&nbsp;<strong>LoadFromFile()</strong>&nbsp;打开已有 Excel 文件。</li>
<li><strong>保存工作簿</strong>&nbsp;– 使用&nbsp;<strong>SaveToFile()</strong>&nbsp;将工作簿导出为 .xlsx、.xls、CSV 等格式。</li>
</ul>
<p>这些操作构成了后续写入数据、设置格式和管理多工作表的基础。</p>
<pre class="prettyprint lang-py highlighter-hljs"><code>from spire.xls import Workbook, ExcelVersion

workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")
sheet = workbook.Worksheets

# 添加新行(中文示例)
sheet.Range["A4"].Value = "笔记本电脑"
sheet.Range["B4"].NumberValue = 5
sheet.Range["C4"].NumberValue = 5800.00

sheet.Range["A5"].Value = "显示器"
sheet.Range["B5"].NumberValue = 10
sheet.Range["C5"].NumberValue = 1200.00

workbook.SaveToFile("output/updated_excel.xlsx", ExcelVersion.Version2016)</code></pre>
<p>&nbsp;</p>
<h2>使用 Python 将数据写入 Excel 文件</h2>
<p>在实际业务中,可能需要新建 Excel 文件、更新现有报表,或者写入不同类型的数据(如文本、数字、日期和公式)。下面展示了在这些常见场景下,如何高效地&nbsp;<strong>用 Python 在 Excel 中写入和管理数据</strong>。</p>
<h3>向现有 Excel 文件追加数据</h3>
<p>如果需要在已有 Excel 报表中追加新信息,例如新增销售记录、库存更新或附加数据行,可以通过以下方式在不覆盖原有内容的情况下插入数据并保存:</p>
<p><strong>关键点:</strong></p>
<ul>
<li><strong>LoadFromFile()</strong>&nbsp;– 加载现有 Excel 文件。</li>
<li><strong>Range["单元格"]</strong>&nbsp;– 通过名称引用单元格。</li>
<li><strong>Value / NumberValue</strong>&nbsp;– 向单元格写入文本或数值。</li>
<li><strong>SaveToFile()</strong>&nbsp;– 保存文件到指定格式。</li>
</ul>
<p>这种方式能让报表在不丢失原始内容的情况下持续更新。</p>
<p>示例效果:</p>
<div><img src="https://image.evget.com/attachment/keditor/image/20250922/134613_2.png"></div>
<h3>批量写入多行多列数据</h3>
<p>对于大规模数据,逐行逐列写入效率低,推荐一次性写入整个数据集。这样不仅节省时间,还能保证数据在表格中的一致性:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code>from spire.xls import Workbook, ExcelVersion

# 创建新工作簿
workbook = Workbook()
sheet = workbook.Worksheets

orders = [
    ["订单号", "客户", "产品", "数量", "价格", "状态"],
    ,
    ,
    ,
    ,
   
]

for row_index, row_data in enumerate(orders, start=1):
    for col_index, value in enumerate(row_data, start=1):
      if isinstance(value, (int, float)):
            sheet.Range.NumberValue = value
      else:
            sheet.Range.Value = value

workbook.SaveToFile("output/orders.xlsx", ExcelVersion.Version2016)</code></pre>
<p><strong>要点:</strong></p>
<ul>
<li><strong>enumerate()</strong>&nbsp;– 获取行列索引。</li>
<li><strong>Range</strong>&nbsp;– 通过行列索引引用单元格。</li>
</ul>
<p>批量写入非常适合导出数据库查询结果或生成运营报表。</p>
<p>效果示例:</p>
<div><img src="https://image.evget.com/attachment/keditor/image/20250922/134727_9.png"></div>
<h3>写入不同类型的数据</h3>
<p>Excel 支持多种数据类型,例如文本、数字、日期、公式和布尔值。使用合适的属性和方法可以保证数据准确存储和展示:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code>from spire.xls import Workbook, ExcelVersion, DateTime, TimeSpan

workbook = Workbook()
sheet = workbook.Worksheets

# 一般值
sheet.Range.Text = "常规示例"
sheet.Range.Value = "示例123"

# 数字
sheet.Range.Text = "数字示例"
sheet.Range.NumberValue = 1234.56
sheet.Range.NumberFormat = "0.000"

# 日期
sheet.Range.Text = "日期示例"
sheet.Range.DateTimeValue = DateTime.get_UtcNow()

# 公式
sheet.Range.Text = "公式示例"
sheet.Range.NumberValue = 1234.56
sheet.Range.NumberValue = 6543.21
sheet.Range.Formula = "=SUM(E5:F5)"

# 文本
sheet.Range.Text = "文本示例"
sheet.Range.Text = "示例文本"

# 布尔值
sheet.Range.Text = "布尔示例"
sheet.Range.BooleanValue = True

sheet.AllocatedRange.Style.Font.FontName = "微软雅黑"
sheet.AllocatedRange.AutoFitColumns()

workbook.SaveToFile("output/value_types.xlsx", ExcelVersion.Version2016)</code></pre>
<p><strong>常用属性:</strong></p>
<ul>
<li><strong>Value</strong>&nbsp;– 一般值,适合文本或混合内容。</li>
<li><strong>NumberValue</strong>&nbsp;– 数字值,保证格式和计算正确。</li>
<li><strong>DateTimeValue</strong>&nbsp;– 日期时间值。</li>
<li><strong>Formula</strong>&nbsp;– 设置公式,实现动态计算。</li>
<li><strong>BooleanValue</strong>&nbsp;– 布尔值 True/False。</li>
<li><strong>Text</strong>&nbsp;– 单元格显示文本。</li>
</ul>
<p>效果示例:</p>
<div><img src="https://image.evget.com/attachment/keditor/image/20250922/134931_5.png"></div>
<h2>在写入 Excel 时应用格式设置</h2>
<p>为了让 Excel 报表更清晰、专业,可以在写入数据的同时应用格式。本节展示如何通过样式、数字格式和行列尺寸调整来提升可读性。</p>
<h3>应用单元格样式</h3>
<p>可以为单元格设置字体、边框、背景色等样式:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code>from spire.xls import Workbook, Color, FontUnderlineType, ExcelVersion, BordersLineType, LineStyleType

workbook = Workbook()
sheet = workbook.Worksheets

# 表头
sheet.Range["A1"].Value = "产品"
sheet.Range["B1"].Value = "类别"
sheet.Range["C1"].Value = "单价"
sheet.Range["D1"].Value = "数量"
sheet.Range["E1"].Value = "合计"

# 数据
sheet.Range["A2"].Value = "华为笔记本"
sheet.Range["B2"].Value = "电脑"
sheet.Range["C2"].NumberValue = 5800.00
sheet.Range["D2"].NumberValue = 1
sheet.Range["E2"].Formula = "=C2*D2"

sheet.Range["A3"].Value = "小米手机"
sheet.Range["B3"].Value = "手机"
sheet.Range["C3"].NumberValue = 3200.00
sheet.Range["D3"].NumberValue = 1
sheet.Range["E3"].Formula = "=C3*D3"

# 设置表头样式
header = sheet.Range["A1:E1"]
header.Style.Font.FontName = "微软雅黑"
header.Style.Font.Size = 12.0
header.Style.Font.IsBold = True
header.Style.Font.Underline = FontUnderlineType.Single
header.Style.Interior.Color = Color.get_LightGray()
header.Style.Borders.LineStyle = LineStyleType.Medium</code></pre>
<p><strong>核心属性:</strong></p>
<ul>
<li><strong>Style.Font</strong>&nbsp;– 控制字体样式(加粗、下划线等)。</li>
<li><strong>Interior.Color</strong>&nbsp;– 单元格背景色。</li>
<li><strong>Borders.LineStyle</strong>&nbsp;– 单元格边框样式。</li>
</ul>
<p>样式能突出重点区域,增强可读性。</p>
<h3>设置数字格式</h3>
<p>通过&nbsp;<strong>NumberFormat</strong>,可以将数字显示为货币、百分比等格式:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code># 设置数字格式
sheet.Range["C2:C3"].NumberFormat = "¥#,##0.00"   # 货币格式
sheet.Range["D2:D3"].NumberFormat = "0"         # 整数格式
sheet.Range["E2:E3"].NumberFormat = "¥#,##0.00"</code></pre>
<p><strong>要点:</strong></p>
<ul>
<li><strong>NumberFormat</strong>&nbsp;– 控制数字显示方式,数据本身不变。</li>
<li>可定义符号、小数位、百分比等展示规则。</li>
</ul>
<p>适当的数字格式能让财务数据更直观、更专业。</p>
<h3>调整列宽和行高</h3>
<p>为了保证内容完整显示,可以自动调整或固定行列尺寸:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code># 自动调整列宽和行高
for col in range(1, 5):
    sheet.AutoFitColumn(col)
for row in range(1, 3):
    sheet.AutoFitRow(row)

# 指定区域自动调整
#sheet.Range["A1:E3"].AutoFitColumns()
#sheet.Range["A1:E3"].AutoFitRows()

# 固定列宽和行高
sheet.Columns.Width = 150
sheet.Rows.Height = 30

workbook.SaveToFile("output/formatted_excel.xlsx", ExcelVersion.Version2016)</code></pre>
<p><strong>关键点:</strong></p>
<ul>
<li><strong>AutoFitColumn / AutoFitRow</strong>&nbsp;– 自动调整单列/单行。</li>
<li><strong>AutoFitColumns / AutoFitRows</strong>&nbsp;– 调整指定区域。</li>
<li><strong>Width / Height</strong>&nbsp;– 手动设置固定宽高。</li>
</ul>
<p>灵活使用自动调整和固定尺寸,可以保证报表既整齐又美观。</p>
<p>效果示例:</p>
<div><img src="https://image.evget.com/attachment/keditor/image/20250922/135135_9.png"></div>
<h2>使用 Python 管理 Excel 多工作表</h2>
<p>在 Excel 中,将数据分类存放在多个工作表中能让结构更清晰。例如,可以为销售、采购、库存等创建不同工作表。本节演示如何&nbsp;<strong>创建、访问和管理多个工作表</strong>:</p>
<pre class="prettyprint lang-py highlighter-hljs"><code>from spire.xls import Workbook, ExcelVersion

workbook = Workbook()

sheet = workbook.Worksheets
sheet.Name = "销售数据"

sheet1 = workbook.Worksheets["Sheet2"]
sheet1.Name = "采购数据"

sheet2 = workbook.Worksheets.Add("库存数据")
sheet2.Range["A1"].Value = "产品ID"
sheet2.Range["B1"].Value = "库存数量"
sheet2.Range["A2"].Value = "P001"
sheet2.Range["B2"].NumberValue = 100
sheet2.Range["A3"].Value = "P002"
sheet2.Range["B3"].NumberValue = 50

workbook.SaveToFile("output/multi_sheet.xlsx", ExcelVersion.Version2016)</code></pre>
<p><strong>主要方法:</strong></p>
<ul>
<li><strong>Worksheets</strong>&nbsp;– 按索引访问工作表。</li>
<li><strong>Worksheets["单元格名称"]</strong>&nbsp;– 按单元格名称(如 A1)访问,更直观。</li>
<li><strong>Worksheets.Add("名称")</strong>&nbsp;– 新增工作表,适合分类存储不同数据。</li>
</ul>
<p>合理管理多个工作表能让数据更有条理。</p>
<p>生成 Excel 文件效果:</p>
<p><img src="https://image.evget.com/attachment/keditor/image/20250922/143813_7.png"></p>
<h2>使用 Python 写入 Excel 的最佳实践</h2>
<p>在写入 Excel 文件时,建议遵循以下原则:</p>
<ul>
<li><strong>使用描述性表名</strong>,如 “Sales_2024” 而非 “Sheet1”。</li>
<li><strong>批量写入大数据集</strong>,避免逐单元格操作,提高性能。</li>
<li><strong>保持格式一致</strong>,特别是表头、合计列。</li>
<li><strong>利用公式</strong>,保持动态计算。</li>
<li><strong>验证数据类型</strong>,避免在图表或公式中出错。</li>
<li><strong>选择合适文件格式</strong>:现代场景用 .xlsx,兼容性需求用 .xls。</li>
<li><strong>逻辑组织工作表</strong>,便于导航和管理。</li>
</ul>
<p>遵循这些规范,能生成更专业、可复用的报表。</p>
<h2>总结</h2>
<p>使用 Python 自动化写入 Excel,可以大幅提升报表生成效率。通过创建工作簿、批量写入数据、应用样式、管理多工作表以及支持多种数据类型,开发者可以轻松生成一致、准确且专业的 Excel 文件。</p>
<h2>Python 写入 Excel 常见问题</h2>
<h3>Q1: Python 可以写入已有 Excel 文件吗?</h3>
<p>可以。Python 能加载已有文件,在保留原有数据的同时追加或修改内容。</p>
<h3>Q2: 如何高效处理大数据集?</h3>
<p>批量写入多行数据,并在插入时尽量减少格式操作,可以保证性能。</p>
<h3>Q3: 可以在 Excel 文件中添加公式吗?</h3>
<p>可以。支持输入公式(如 =SUM()),并保持动态计算。</p>
<h3>Q4: Spire.XLS for Python 支持操作哪些 Excel 格式?</h3>
<p><strong><u>Spire.XLS for Pytho</u></strong><strong><u>n&nbsp;</u></strong>支持保存为 .xlsx、.xls、CSV,还可以导出为 PDF,满足不同兼容性需求。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Spire.XLS for Python试用下载,请联系E-iceblue-Spire授权代理商慧都科技</strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>技术交流Q群(125237868)</strong></span></p><br><br>
来源:https://www.cnblogs.com/software-Development/p/19105396
頁: [1]
查看完整版本: 国产化Excel开发组件Spire.XLS教程:Python 写入 Excel 文件,数据写入自动化实用指南