为 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 天的临时许可证。