Python在Excel中设置数字格式和获取应用数字格式后的值

目录

安装Python Excel库

Python在Excel中设置数字格式

Python获取Excel中应用数字格式的单元格的显示值

总结


Excel 数字格式是用于控制单元格中数字显示方式的一组规则或代码。通过设置不同的数字格式,可以定义数字的显示方式,如小数位数、货币符号、百分比、日期和时间等。

以下是一些常见的 Excel 数字格式:

  • 常规格式:默认情况下,Excel 会根据数据自动选择合适的显示格式。
  • 数字格式:设置数字的小数位数,如 "0.00"、"#,##0.00"。
  • 货币格式:以货币符号显示金额,如 "¥0.00"。
  • 会计格式:以会计样式显示金额,数字右对齐,货币符号居中。
  • 日期格式:用于显示日期和时间数据,如"2024年6月26日"、"6/26/24"、"2024-06-26"等。
  • 百分比格式:将数字显示为百分比形式,如 "10.00%"。
  • 分数格式:将数字显示为分数形式,如 "10 1/2"。
  • 科学计数法格式:以指数形式显示数字,如 "1.23E+06"。
  • 文本格式:将数字视为文本处理,不进行任何计算。
  • 自定义格式:用户可以根据自己的需求创建自定义的数字格式。这可以使用各种格式代码来控制数字的显示方式,比如加入千位分隔符、百分号、自定义文本等。

这篇文章将探讨如何使用Python在Excel中设置这些常见的数字格式,以及如何获取应用数字格式后的值

  • Python在Excel中设置数字格式
  • Python获取Excel中应用数字格式的单元格的显示值

安装Python Excel库

在Python中,我们可以使用Spire.XLS for Python库来给Excel中的数据设置数字格式。它支持几乎所有常见的数字格式。

你可以使用以下pip命令从PyPI安装Spire.XLS for Python:

pip install Spire.Xls

如果不清楚如何安装,可以查看这篇文档:如何在 Windows 中安装 Spire.XLS for Python

Python在Excel中设置数字格式

Spire.XLS for Python 使用数字格式代码(见:微软数字格式代码)来以不同格式显示单元格数据,如数字、货币、会计、日期、百分比、分数、科学计数、文本和自定义格式等。

以下列表展示了 Excel 数字格式代码中使用的一些常见元素:

  • “@” :文本占位符。按输入的方式显示文本。
  • “0” :数字占位符。如果有可用数字,则显示数字;否则显示零。
  • “#” :数字占位符。如果有可用数字,则显示数字,但不显示前导或尾随零。
  • “.” :小数点分隔符。表示数字中的小数位置。
  • “,” :千位分隔符。将三位数字分开。
  • “$” :货币符号。表示数字中使用的货币。
  • “%” :百分比符号。将数字乘以 100 并显示为百分比。
  • “E+” 或 “e+” :指数表示法。以科学记数法表示数字。
  • “-” :负号。显示负数或表示负值。
  • “[Color]” :条件格式。根据指定条件应用格式。
  • “/” :分数分隔符。将数字格式化为分数。
  • “;” :部分分隔符。在数字格式中为正值、负值和零值分隔不同部分。

这些元素可以组合成各种数字格式代码来显示数字。例如:

  • “0.00” :以两位小数显示数字。
  • “#,##0” :以千位分隔符显示数字。
  • “0.00%” :以百分比形式显示数字并保留两位小数。
  • “$#,##0.00” :以货币值显示数字,并显示美元符号和两位小数。
  • “[Green]0.00;[Red]-0.00;[Blue]0.00” :将正值显示为绿色,负值显示为红色,零值显示为蓝色。

Spire.XLS for Python 提供了 CellRange.NumberFormat 属性,支持通过格式代码对单个单元格或单元格范围应用各种类型的数字格式。

以下代码展示了如何使用 Python 和 Spire.XLS for Python 对 Excel 单元格应用多种不同的数字格式:

from spire.xls import *
from spire.xls.common import *# 实例化 Workbook 对象
workbook = Workbook()
# 加载 Excel 文件
# workbook.LoadFromFile("Example.xlsx")# 获取第一个工作表
sheet = workbook.Worksheets[0]sheet.Range["A1"].Text = "数字格式"
sheet.Range["B1"].Text = "示例输入"
sheet.Range["C1"].Text = "示例输出"
sheet.Range["A1:C1"].Style.Font.IsBold = True
sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center# 应用不同类型的数字格式
sheet.Range["A2"].Text = "数字"
sheet.Range["B2"].Text = "1234.5678"
sheet.Range["C2"].NumberValue = 1234.5678
sheet.Range["C2"].NumberFormat = "0"sheet.Range["A3"].Text = "数字"
sheet.Range["B3"].Text = "1234.5678"
sheet.Range["C3"].NumberValue = 1234.5678
sheet.Range["C3"].NumberFormat = "0.00"sheet.Range["A4"].Text = "数字"
sheet.Range["B4"].Text = "1234.5678"
sheet.Range["C4"].NumberValue = 1234.5678
sheet.Range["C4"].NumberFormat = "#,##0.00"# 应用货币格式
sheet.Range["A5"].Text = "货币"
sheet.Range["B5"].Text = "1234.5678"
sheet.Range["C5"].NumberValue = 1234.5678
sheet.Range["C5"].NumberFormat = "\"$\"#,##0.00"# 应用日期格式
sheet.Range["A6"].Text = "日期"
sheet.Range["B6"].Text = DateTime.get_Today().ToShortDateString()
sheet.Range["C6"].DateTimeValue = DateTime.get_Today()
sheet.Range["C6"].NumberFormat = "mm/dd/yyyy"# 应用科学计数格式
sheet.Range["A7"].Text = "科学计数"
sheet.Range["B7"].Text = "1234567.0005"
sheet.Range["C7"].NumberValue = 1234.5678
sheet.Range["C7"].NumberFormat = "0.00E+00"# 应用会计格式
sheet.Range["A8"].Text = "会计"
# 正数
sheet.Range["B8"].Text = "5"
sheet.Range["C8"].NumberValue = 5 
sheet.Range["A9"].Text = "会计"
# 负数
sheet.Range["B9"].Text = "-5"
sheet.Range["C9"].NumberValue = -5
sheet.Range["A10"].Text = "会计"
# 零
sheet.Range["B10"].Text = "0"
sheet.Range["C10"].NumberValue = 0
sheet.Range["C8:C10"].NumberFormat = "_(\"$\"* #,##0_);_(\"$\"* (#,##0);_(\"$\"* \"-\"_);_(@_)"# 应用自定义格式
sheet.Range["A11"].Text = "自定义"
# 正数
sheet.Range["B11"].Text = "5"
sheet.Range["C11"].NumberValue = 5 
sheet.Range["A12"].Text = "自定义"
# 负数
sheet.Range["B12"].Text = "-5"
sheet.Range["C12"].NumberValue = -5
sheet.Range["A13"].Text = "自定义"
# 零
sheet.Range["B13"].Text = "0"
sheet.Range["C13"].NumberValue = 0
sheet.Range["C11:C13"].NumberFormat = "[Green]0.00;[Red]-0.00;[Blue]0.00"# 应用百分比格式
sheet.Range["A14"].Text = "百分比"
sheet.Range["B14"].Text = "0.58"
sheet.Range["C14"].NumberValue = 0.58
sheet.Range["C14"].NumberFormat = "0.00%"# 应用分数格式
sheet.Range["A15"].Text = "分数"
sheet.Range["B15"].Text = "0.25"
sheet.Range["C15"].NumberValue = 0.25
sheet.Range["C15"].NumberFormat = "# ?/?"# 应用文本格式
sheet.Range["A16"].Text = "文本"
sheet.Range["B16"].Text = "001"
sheet.Range["C16"].Value = "001"
sheet.Range["C16"].NumberFormat = "@"# 设置列宽
sheet.SetColumnWidth(1, 23)
sheet.SetColumnWidth(2, 44)
sheet.SetColumnWidth(3, 23)# 保存结果文件
workbook.SaveToFile("设置数字格式.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python获取Excel中应用数字格式的单元格的显示值

在应用数字格式后,Excel单元格中的显示值可能和实际的值不相同。在将 Excel 数据导入到其他系统或程序时,可能需要读取呈现给用户的显示值。

通过使用 CellRange.DisplayedText 属性,可以轻松获取 Excel 单元格的显示值。

以下代码展示了如何使用 Python 和 Spire.XLS for Python 获取应用了数字格式的 Excel 单元格的显示值:

from spire.xls import *
from spire.xls.common import *# 实例化 Workbook 对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("设置数字格式.xlsx")# 获取第一个工作表
sheet = workbook.Worksheets[0]# 获取单元格 C2 的显示文本
displayedText = sheet.Range["C2"].DisplayedText
print(displayedText)workbook.Dispose()

注意,CellRange.DisplayedText属性不仅可以获取设置数字格式后的值,也可以获取任意其他单元格的显示值。

总结

这篇文章介绍了如何使用Python在Excel中设置各种不同的数字格式,如数字、货币、会计、日期、百分比、分数、科学计数和文本等,以及如何使用Python获取设置数字格式后的Excel单元格的显示值。你可以根据自己的需要,对文章的代码进行修改或扩展。

本文完结。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/37855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用PHP和Selenium快速构建自己的网络爬虫系统

近年来,随着互联网的普及,网络爬虫逐渐成为了信息采集的主要手段之一,然而,常规的爬虫技术不稳定、难以维护,市面上的纯web网页爬虫也只能在静态页面上进行操作。而php结合selenium可达到动态爬虫的效果,具…

Java对应C++ STL的用法

sort: 1:java.util.Arrays中的静态方法Arrays.sort()方法,针对基本数据类型和引用对象类型的数组元素排序 2:java.util.Collections中的静态方法的Collections.sort()方法,针对集合框架中的动态数组,链表&…

iOS17系统适配

iOS17 新功能 文章目录 iOS17 新功能iOS17支持哪几款机型Xcode15新特性iOS17-开发适配指南 横屏待机 在iOS 17中,还带来了横屏待机功能,苹果将这个新功能命名为“Standby”模式,为 iPhone 带来了全新的玩法。iPhone启用之后,默认情…

1-Pandas是什么

Pandas是什么 Pandas 是一个开源的第三方 Python 库,从 Numpy 和 Matplotlib 的基础上构建而来,享有数据分析“三剑客之一”的盛名(NumPy、Matplotlib、Pandas)。Pandas 已经成为 Python 数据分析的必备高级工具,它的…

PyTorch Tensor进阶操作指南(二):深度学习中的关键技巧

本文主要讲tensor的裁剪、索引、降维和增维 Tensor与numpy互转、Tensor运算等,请看这篇文章 目录 9.1、首先看torch.squeeze()函数: 示例9.1:(基本的使用) 小技巧1:如何看维数 示例9.2:&a…

Header Location重定向机制解析与应用

Header Location重定向机制解析与应用 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨HTTP中的Header Location重定向机制,以及在…

安全架构概述_1.信息安全面临的威胁

在当今以计算机、网络和软件为载体的数字化服务几乎成为人类赖以生存的手段。与之而来的计算机犯罪呈现指数上升趋势,因此,信息的可用性、完整性、机密性、可控性和不可抵赖性等安全保障显得尤为重要,而满足这些诉求,离不开好的安…

Vulnhub-AdmX

主机发现 靶机 : 192.168.145.131131 这台主机 存活 端口扫描 nmap -sV -O -p 1-65535 192.168.145.131 存在 80 端口 ,这里连ssh 端口都没了 80 端口存在 Apache httpd 2.4.1 存在 Apache 默认页面 像这种页面 ,没有什么具体的价值 扫描一…

嵌入式Linux系统编程 — 4.6 atoi、strtol等函数实现字符串与数字转换

目录 1 字符串转整形数据 1.1 函数功能 1.2 示例程序 2 字符串转浮点型数据 2.1 函数介绍 2.2 示例程序 3 数字转字符串 3.1 函数介绍 3.2 函数原型 在编程中,经常会需要将数字组成的字符串转换为相应的数字、或者将数字转换为字符串,在 C 函数…

连环计 | 第6集 | 百姓有倒悬之危,君臣有累卵之急 | 貂蝉 | 三国演义 | 逐鹿群雄

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 📌这篇博客分享的是《三国演义》文学剧本第Ⅰ部分《群雄逐鹿》的第6️⃣集《连环计》的经典语句和文学剧本全集台词 文章目录 1.经典语句2.文学剧本台词 …

LabVIEW材料样本结构缺陷检测

本文介绍了一种基于LabVIEW的实验室振动特性分析测试装置,通过分析振动特性来检测结构缺陷。文章详细描述了具体案例、硬件型号、工作原理、软件功能以及注意事项。 硬件型号 振动传感器:PCB Piezotronics 352C33加速度计 数据采集卡:NI PXI…

python(基础语法,pandas,numpy,正则表达式,数据预处理)

python学习推荐网址: 白月黑羽 一、语法基础 目标: • list、tuple、set、dict的基本用法 • 内置函数 len(), eval(),range(),sort(…

Linux自动化交互脚本expect开发

在日常开发任务中,运行shell脚本有时候会提示输入密码的操作,如何让脚本自动输入密码呢?这时使用expect帮我们输入,Expect是基于Tcl发展而来的,它不仅可以进行交互,还可以根据程序的提示模拟标准输入&#…

西安高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

随着工业4.0时代的到来,智能制造成为推动制造业转型升级的关键。为了培养学生的创新能力和实践能力,西安高校大学决定建设智能制造实验室,并引入数字孪生技术,构建可视化系统平台。项目旨在通过数字孪生技术,实现对制造…

YOLOv8训练参数总结及翻译

参数名称默认值描述modelNone指定用于训练的模型文件。接受 .pt 预训练模型或 .yaml 配置文件的路径。对于定义模型结构或初始化权重至关重要。dataNone数据集配置文件的路径(例如, coco8.yaml )。该文件包含特定于数据集的参数,包括到训练和验证数据的路…

微信小程序毕业设计-线上教育商城系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

线性表与顺序存储结构(上)

前言 线性表:零个或多个数据元素的有限序列。 线性表是数据结构中最常用和最简单的一种结构。 本文介绍的是线性表和线性表的顺序存储结构的部分内容。 正文 什么是线性表? 顾名思义,是具有像线一样的性质的表。 首先,它是一个…

刷代码随想录有感(120):贪心算法——买卖股票的最佳时机

题干&#xff1a; 代码&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {int low INT_MAX;int res INT_MIN;for(int i 0; i < prices.size(); i){low min(low, prices[i]);res max(res, prices[i] - low);}return res;} }; 贪心…

周末总结(2024/06/29)

工作 人际关系核心实践&#xff1a; 要学会随时回应别人的善意&#xff0c;执行时间控制在5分钟以内 坚持每天早会打招呼 遇到接不住的话题时拉低自己&#xff0c;抬高别人(无阴阳气息) 朋友圈点赞控制在5min以内 工作上的要点 现状&#xff08;接受破烂现状&#xff0c;改变…

ARCGIS添加在线地图

地图服务地址&#xff1a;http://map.geoq.cn/ArcGIS/rest/services 具体方法&#xff1a; 结果展示&#xff1a;