为 Excel 工作表中的单元格设置数字格式对于数据管理和展示非常重要,可以增强数据可读性、确保内容一致性并帮助进行准确的数据分析。恰当的数字格式使用户能够区分不同类型的数值数据,如货币、百分比、日期和科学计数法等,使复杂的数据集一目了然。在本文中,我们将探讨如何使用 Spire.XLS for Python 通过 Python 程序中设置 Excel 单元格的数字格式,实现自动化的 Excel 文档创建与管理。
安装 Spire.XLS for Python
此教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.XLS
如果您不确定如何安装,请参考: 如何在 Windows 中安装 Spire.XLS for Python
设置 Excel 工作表中单元格的数字格式
在 Excel 工作簿中,单元格的数字格式由其格式代码决定。开发者可以利用各种符号在格式代码中定义数字数据、日期和时间、货币等的显示方式。以下是数字格式代码中一些常用的符号:
- #:表示数字占位符,仅显示非零数字。
- 0:代表数字占位符,显示数字时总会占据至少一个位置,即使数字为 0 也会显示。
- ;(分号):用于分隔正数、负数和零的格式。
- /(斜杠):在日期格式中分隔年、月和日。
- $:货币符号,用于表示货币值,可根据系统区域设置自适应。
- ()(括号):用于负数的格式,使负数显示在括号中。
- [](方括号):用于条件格式设置,如颜色设置 [Red] 或条件表达式 [<=100]"Low";[>100]"High"。
Spire.XLS for Python 提供了 CellRange.NumberValue 属性来设置单元格的数值,以及 CellRange.NumberFormat 属性来使用格式代码设置单元格的数字格式。以下是使用 Python 设置 Excel 单元格数字格式的操作步骤:
- 创建一个 Workbook 类的实例以创建一个 Excel 工作簿。
- 使用 Workbook.Worksheets.get_Item() 方法获取第一个默认工作表。
- 通过 Worksheet.Range[].Text 属性向标题行添加文本。
- 通过 Worksheet.Range[].NumberValue 属性向单元格添加数值,并通过 Worksheet.Range[].NumberFormat 属性使用格式代码设置单元格的数字格式。
- 使用 Workbook.SaveToFile() 方法保存 Excel 工作簿。
- Python
from spire.xls import *
from spire.xls.common import *
# 创建Workbook实例
workbook = Workbook()
# 获取第一个工作表
sheet = workbook.Worksheets.get_Item(0)
# 设置标题行
sheet.Range["B9"].Text = "数字格式"
sheet.Range["C9"].Text = "数值"
sheet.Range["D9"].Text = "显示"
# 设置带千位分隔符和两位小数的数字
sheet.Range["B10"].Text = "带千位分隔符和两位小数的数字"
sheet.Range["C10"].Text = "-1234123.5678"
sheet.Range["D10"].NumberValue = -1234123.5678
sheet.Range["D10"].NumberFormat = "#,##0.00"
# 设置红色的数字
sheet.Range["B11"].Text = "红色数字"
sheet.Range["C11"].Text = "12345.12345"
sheet.Range["D11"].NumberValue = 12345.12345
sheet.Range["D11"].NumberFormat = "[Red]###0.00"
# 设置带两位小数的百分数
sheet.Range["B12"].Text = "带两位小数的百分数"
sheet.Range["C12"].Text = "0.12345"
sheet.Range["D12"].NumberValue = 0.12345
sheet.Range["D12"].NumberFormat = "0.00%"
# 设置带括号的数字
sheet.Range["B13"].Text = "带括号的数字"
sheet.Range["C13"].Text = "-1234.5678"
sheet.Range["D13"].NumberValue = -1234.5678
sheet.Range["D13"].NumberFormat = "(###0.00;(###0.00))"
# 设置日期
sheet.Range["B14"].Text = "日期"
sheet.Range["C14"].Text = "36526"
sheet.Range["D14"].NumberValue = 36526
sheet.Range["D14"].NumberFormat = "yyyy/m/d"
# 设置24小时制时间
sheet.Range["B15"].Text = "24小时制时间"
sheet.Range["C15"].Text = "0.6"
sheet.Range["D15"].NumberValue = 0.6
sheet.Range["D15"].NumberFormat = "H:MM:SS"
# 设置中文格式的货币
sheet.Range["B16"].Text = "中文格式的货币"
sheet.Range["C16"].Text = "1234.56"
sheet.Range["D16"].NumberValue = 1234.56
sheet.Range["D16"].NumberFormat = "¥#,##0.00"
# 设置科学计数法
sheet.Range["B17"].Text = "科学计数法"
sheet.Range["C17"].Text = "1234.5678"
sheet.Range["D17"].NumberValue = 1234.5678
sheet.Range["D17"].NumberFormat = "0.00E+00"
# 设置日期和12小时制时间
sheet.Range["B18"].Text = "日期和12小时制时间"
sheet.Range["C18"].Text = "36526"
sheet.Range["D18"].NumberValue = 36526
sheet.Range["D18"].NumberFormat = "yyyy/m/d h:mm:ss 上午/下午"
# 设置带文本的数字
sheet.Range["B19"].Text = "带文本的数字"
sheet.Range["C19"].Text = "1234.5678"
sheet.Range["D19"].NumberValue = 1234.5678
sheet.Range["D19"].NumberFormat = "\"CNY \"###0.00"
# 设置字体、字体大小并自动调整行列
sheet.AllocatedRange.Style.Font.FontName = "HarmonyOS Sans SC"
sheet.AllocatedRange.Style.Font.Size = 13
sheet.AllocatedRange.AutoFitRows()
sheet.AllocatedRange.AutoFitColumns()
# 保存文件
workbook.SaveToFile("output/设置Excel单元格数字格式.xlsx", FileFormat.Version2016)
workbook.Dispose()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。