Python轻松设置Excel单元格数字显示格式

Excel作为强大的数据处理与分析工具,不仅能够存储大量数据,还支持复杂的数据处理与可视化功能。而如何恰当地展示Excel表格中的数据是Excel文件制作的关键之一。这便涉及到Excel单元格数字格式的设置。数字格式不仅关乎数据的美学呈现,如货币、日期或百分比的格式化显示,更直接影响到数据的可读性与准确性。Python语言可以帮助我们灵活设置Excel单元格的数字格式,保证数据的一致性与专业标准。本文将介绍如何使用Python对Excel工作表中单元格的数字格式进行设置。

文章目录

本文所使用的方法需要用到Spire.XLS for Python,PyPI:pip install Spire.XLS

申请免费License

通过格式代码设置Excel单元格的数字格式

Excel中单元格的数字显示格式可以由格式代码进行设置,这些代码通过一些列符号决定单元格中数值数据、时间和日期数据以及汇率数据等的显示方式。以下是一些常用的格式代码符号:

  • #:表示数字占位符,仅显示非零数字。
  • 0:代表数字占位符,显示数字时总会占据至少一个位置,即使数字为 0 也会显示。
  • ;(半角分号):用于分隔正数、负数和零的格式。
  • /(斜杠):在日期格式中分隔年、月和日。
  • $:货币符号,用于表示货币值,可根据系统区域设置。
  • ()(半角括号):用于负数的格式,使负数显示在括号中。
  • [](方括号) :用于条件格式设置,如颜色设置[Red]或条件表达式[<=100]"Low";[>100]"High"

库中提供CellRange.NumberValue来在单元格中添加数据,以及CellRange.NumberFormat来通过格式代码来设置单元格数据的数字展示格式。以下是用Python设置Excel单元格数字格式的操作步骤:

  1. 导入所需模块。
  2. 创建Workbook实例从而创建一个Excel工作簿。
  3. 使用Worhbook.Worksheets.Clear()方法清除默认工作簿,并使用Workbook.Worksheets.Add()方法在工作簿中新建一个工作表。
  4. 使用Worksheet.Range[].Text属性设置表头文本。
  5. 使用Worksheet.Range[].NumberValue属性设置单元格数据,并使用Worksheet.Range[].NumberFormat通过格式代码设置单元格数字格式。
  6. 使用CellRange.Style.Font属性下的属性设置字体格式,以及CellRange.AutoFitRows()CellRange.AutoFitColumns()方法自动调整行高和列宽。
  7. 使用Workbook.SaveToFile()方法保存工作簿。
  8. 释放资源。

代码示例:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建Workbook实例
workbook = Workbook()

# 清除默认工作表并创建一个新的工作表
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("数字格式")

# 设置标题行
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()

保存的工作簿

本文介绍了如何使用Python设置Excel工作表中单元格的数字格式。

更多Excel文件处理技巧请前往Spire.XLS for Python教程查看。

相关推荐
千澜空5 分钟前
celery在django项目中实现并发任务和定时任务
python·django·celery·定时任务·异步任务
2402_857589367 分钟前
SpringBoot框架:作业管理技术新解
java·spring boot·后端
斯凯利.瑞恩12 分钟前
Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码
python·决策树·随机森林
一只爱打拳的程序猿26 分钟前
【Spring】更加简单的将对象存入Spring中并使用
java·后端·spring
杨荧27 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
白子寰34 分钟前
【C++打怪之路Lv14】- “多态“篇
开发语言·c++
yannan2019031334 分钟前
【算法】(Python)动态规划
python·算法·动态规划
蒙娜丽宁44 分钟前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉
光芒再现dev1 小时前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
王俊山IT1 小时前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习