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

news2024/11/15 22:19:56

目录

安装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.coloradmin.cn/o/1865075.html

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

相关文章

智能护栏碰撞监测系统:强化道路安全的智能守卫

智能护栏碰撞监测系统是提升道路安全、加强交通管理智能化的重要技术手段,其为道路安全带来的好处和安装的必要性体现在以下几个方面: 1. 即时事故响应:系统能够实时监测到护栏遭受的碰撞事件,几乎瞬间触发报警机制,将…

ViewBinding的使用(因为kotlin-android-extensions插件的淘汰)

书籍: 《第一行代码 Android》第三版 开发环境: Android Studio Jellyfish | 2023.3.1 问题: 3.2.4在Activity中使用Toast章节中使用到了kotlin-android-extensions插件,但是该插件已经淘汰,根据网上了解,目前使用了新的技术VewBinding替…

电脑的D盘E盘F盘突然消失了 电脑只剩下C盘了其他盘怎么恢复

现如今随着时代的发展,无纸化办公成为主流,这主要归功于电脑,能够通过电脑完成的工作绝不使用纸质文件,这不仅提高了工作效率,也让一些繁杂的工作变的更加简单。不过电脑毕竟是电子产品,不可避免的会出现一…

2024软件设计师笔记之考点版(一考就过):11-25

软件设计师之一考就过:成绩版 考点11:防火墙、入侵检测 真题1:(专家系统、模型检测、简单匹配)属于入侵检测;而漏洞扫描不属于。 真题2:防火墙特性包括(控制进出网络的数据包和数据流向、提供流量信息的日志和审计、隐藏内部IP以及网络结构细节),但不包括提供漏洞扫…

视频共享融合赋能平台LntonCVS统一视频接入平台数字化升级医疗体系

医疗健康事关国计民生,然而,当前我国医疗水平的地区发展不平衡、医疗资源分布不均和医疗信息系统老化等问题,制约了整体服务能力和水平的提升。视频融合云平台作为推动数字医疗的关键工具,在医疗领域的广泛应用和普及,…

[极客大挑战 2020]Roamphp2-Myblog

又来喽 经过一番测试&#xff0c;发现文件包含&#xff0c;使用伪协议读取文件 例&#xff1a;php://filter/readconvert.base64-encode/resourcelogin //这里我只写php部分 //login.php <?php require_once("secret.php"); mt_srand($secret_seed); $_SESSION…

visual studio,默认生成C#代码.cs,设置成生成C++代码.cpp解决方案视图调整

安装 在创建项目选择 解决方案视图调整,点着解决方案视图,然后往中间移动出现这个类似方向的放哪就是哪

OpenCV练习(2)图像校正

1、傅里叶变换 霍夫变换 直线 角度 旋转2、边缘检测 霍夫变换 直线角度 旋转3、四点透视 角度 旋转4、检测矩形轮廓 角度 旋转 1.目的 实现类似全能扫面王的图像校正功能 2. 基于轮廓提取和透射变换 基于轮廓提取和透射变换的矫正算法更适用于车牌、身份证、人民…

【十六】【QT开发应用】Menu菜单,contextMenuEvent,setContextMenuPolicy,addAction

在 Qt 框架中&#xff0c;QMenu 类用于创建和管理菜单。菜单是用户界面的一部分&#xff0c;可以包含多个选项或动作&#xff0c;用户可以选择这些选项来执行特定的功能。菜单通常显示在菜单栏、上下文菜单&#xff08;右键菜单&#xff09;或工具栏中。 基本用法 创建菜单对象…

Percona Toolkit 神器全攻略(配置类)

Percona Toolkit 神器全攻略&#xff08;配置类&#xff09; Percona Toolkit 神器全攻略系列共八篇&#xff0c;前文回顾&#xff1a; 前文回顾Percona Toolkit 神器全攻略Percona Toolkit 神器全攻略&#xff08;实用类&#xff09; 全文约定&#xff1a;$为命令提示符、gr…

变长的时间戳设计,第2版

以前的时间戳有32位&#xff0c;以秒为单位&#xff0c;231秒≈68年&#xff0c;从1970年开始&#xff0c;到2038年会出问题。 现在的时间戳有64位&#xff0c;表达范围仍然受限。 设计变长的时间戳&#xff0c;以32位为单元&#xff0c;最短有32位&#xff0c;最长有328256位…

UI(二)控件

文章目录 PatternLockProgressQRCodeRadioRatingRichTextScollBarSearchSelectSlideSpanStepper和StepperItemTextTextAreaTextClockTextInputTextPickerTextTimerTimePickerToggleWeb PatternLock PatternLock是图案密码锁组件&#xff0c;以九宫格图案的方式输入密码&#x…

vscode php dubug xdubg

前提&#xff1a;官网安装了PHP 一、检测是否有xdebug插件 二、如果没有插件&#xff0c;下载对应版本的插件&#xff0c;并且配置php 1、查看自己php版本&#xff1a; 2、xdebug下载地址&#xff1a; https://xdebug.org/download/historical 我下载的是箭头所示&#xff0…

【SHAP解释运用】基于python的树模型特征选择+随机森林回归预测+SHAP解释预测

1.导入必要的库 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestRegressor from sklearn.tree import export…

对input输入框脱敏的实现(input输入时可回删、可粘贴)

目录 1.要解决的问题2.第一回合&#xff1a;substring replace3.第二回合&#xff1a;移魂大法4.第三回合&#xff1a;移花接木5.第四回合&#xff1a;万佛归宗 写在前面&#xff1a; 如有转载&#xff0c;务必注明出处&#xff0c;否则后果自负。 1.要解决的问题 继续与客户…

从云原生视角看 AI 原生应用架构的实践

本文核心观点&#xff1a; 基于大模型的 AI 原生应用将越来越多&#xff0c;容器和微服务为代表的云原生技术将加速渗透传统业务。API 是 AI 原生应用的一等公民&#xff0c;并引入了更多流量&#xff0c;催生企业新的生命力和想象空间。AI 原生应用对网关的需求超越了传统的路…

云计算运维工程师的突发状况处理

云计算运维工程师在应对突发的故障和紧急情况时,需要采取一系列迅速而有效的措施来最小化服务中断的时间并恢复系统的稳定性。 以下是一些关键步骤和策略: 快速响应: 立即识别并确认故障的性质和范围。通知团队成员和相关的利益相关者,确保所有人了解当前情况。故障诊断:…

Web Worker 学习及使用

了解什么是 Web Worker 提供了可以在后台线程中运行 js 的方法。可以不占用主线程&#xff0c;不干扰用户界面&#xff0c;可以用来执行复杂、耗时的任务。 在worker中运行的是另一个全局上下文&#xff0c;不能直接获取 Window 全局对象。不同的 worker 可以分为专用和共享&…

使用 Vue Router 的 meta 属性实现多种功能

在 Vue.js 中&#xff0c;Vue Router 提供了强大的路由管理功能。通过 meta 属性&#xff0c;我们可以在路由定义中添加自定义元数据&#xff0c;以实现访问控制、页面标题设置、角色权限管理、页面过渡效果等多种功能。本文将总结如何使用 meta 属性来实现这些常见的功能。 1.…

gici-open学习日记(7):GNSS图优化——RTK

gici-open学习日记——GNSS RTK图优化 前言初始化RTK的调用rearrangePhasesAndCodes双差构造formPhaserangeDDPair周跳探测cycleSlipDetectionSD添加参数块模糊度参数部分addSdAmbiguityParameterBlocks添加双差伪距残差addDdPseudorangeResidualBlocks添加双差相位残差addDdPh…