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单元格的显示值。你可以根据自己的需要,对文章的代码进行修改或扩展。

本文完结。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

树形结构的勾选、取消勾选、删除、清空已选、回显、禁用

树形结构的勾选、取消勾选、删除、清空已选、回显、禁用 基本页面: 分为上传文件和编辑的页面 代码实现要点: 上传文件页面: 点开选择范围弹窗,三个radio单选框都为可选状态,默认显示的是第一个单选框(按…

前端实战:实现块级元素的拖拽与缩放功能

在现代网页开发中,用户交互是一个非常重要的部分。在这篇文章中,我们将详细介绍如何使用原生 JavaScript 实现块级元素的拖拽与缩放功能。具体来说,我们将实现以下功能: 点击并拖动 outer 元素,可以移动整个块。点击并…

GPT-5的即将登场

人工智能领域正经历着一场前所未有的变革,而其中大语言模型的进步尤为瞩目。继GPT-4取得巨大成功后,OpenAI即将推出的GPT-5被寄予厚望。作为新一代大语言模型,GPT-5在各个方面都有望实现显著突破。本文将探讨GPT-5的潜在特性、应用前景以及其…

基于Flask开发的前后端交互项目(可用于期末大作业) MySQL数据库 文件上传 Spider爬虫 Echarts可视化展示 JS动态

项目描述: 开发一个基于Flask框架开发的前后端交互项目,项目内容为 东京奥运会 。对各个需要填写的字段做了数据验证,非法信息会被JS拦截提醒不合法;还对未登录就访问做了拦截,阻止未登录就访问。 前端:HT…

优思学院|精益生产3大特征、5个步骤、8大浪费、10大工具

前言 精益生产作为一种先进的生产管理理念,起源于丰田汽车公司的生产方式,其核心在于消除浪费、优化流程,以最少的投入获取最大的产出。本文将详细解析精益生产的三大特征、五个步骤、八大浪费和十大工具,帮助读者深入理解这一理…

含着“金钥匙”出生,“凤凰”重塑骨科未来!

凤凰,作为中华传统文化中的神鸟,象征着吉祥、和谐与重生。而Phoenix(凤凰),这个名字本身就带有传奇色彩。 2024年6月20日-23日,由中国医师协会、中国医师协会骨科医师分会主办,江苏省医师协会骨…

【openmpi】怎样使用openmpi并行运行python脚本?

创作日志: 装过一次openmpi,但是半年之后就忘记怎么用了,所以记录一下 1. 测试openmpi是否安装好 cd /home/xxxx/SnapHiC_Call_Loop/openmpi-4.1.6/examples make mpirun -np 4 hello_c得到如下输出就说明是装好的了 2. 没有导入路径的话导…

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

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

服务器如何实现SSH免密码登录?

目录 一、服务器和电脑的区别二、什么是SSH三、什么是免密码登录四、服务器如何实现SSH免密码登录 一、服务器和电脑的区别 服务器和电脑是两种不同类型的计算机系统,它们在设计、功能和用途上存在明显的区别。首先,从硬件配置上看,服务器通…

408计算机网络--物理层

一、物理层概述 物理层是干嘛使得? 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 物理层主要任务是确定与传输媒体接口有关的一些特性。定义标准可以理解为插排上的两孔三孔 机械特性:定义物理连接…

ONLYOFFICE8.1版本桌面编辑器的测评

首先我们先出示一下我们所测评官网的链接: ONLYOFFICE官网链接:ONLYOFFICE - 企业在线办公应用软件 | ONLYOFFICE 我们这款ONLYOFFICE8.1版本有这一下优点 1.解决PDF痛点 ONLYOFFICE在PDF编辑方面支持高亮显示、下划线和删除线、添加批注等功能&#…

vue3集成Echarts,自定义ToolBox时无法监听参数变化

问题描述 在vue中集成echart中自定义ToolBox工具的点击事件,并将里面的typeBar赋给data中的变量,随后用watch监听这个变量的变化,发现监听不到!!!! 解决方案:一直以为是watch不能监…

jenkins构建allure报java.io.IOException: Can‘t find allure commandline <null>

jenkins构建allure报错 java.io.IOException: Can’t find allure commandline 配置allure commandline,注意将地址放在bin上一层

链式结构二叉树练习

一.二叉树的前序遍历 想要输出所给值,就要先用数组将数据存储起来,所以这里我们单独创建一个前序遍历函数,将所要数据前序遍历并放入数组,代码如下: void preOrder(struct TreeNode* root, int* a, int* pi)//前序遍历…

鸿蒙开发系统基础能力:【@ohos.pasteboard (剪贴板)】

剪贴板 说明: 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import pasteboard from ohos.pasteboard;属性 系统能力: 以下各项对应的系统能力均为SystemCapability.MiscServices.Pasteb…

2024车载测试还可以冲吗?

2024年已过接近1/4了,你是不是还在围观车载测试行业的发展?同时也在思考着:现在进入车载测试行业还来得及吗?如何高效学习车载测试呢? 我们先来了解一下车载测试行情发展,通过某大平台,我们获取…

解决pycharm安装dlib失败的问题

今天使用pycharm来学习opencv人脸识别库face-recognition的时候出现了一点小问题,在pycharm中直接安装face-recognition会失败,说是因为缺少依赖库dlib,但是直接使用pycharm安装dlib库也有问题,不知道大家遇到没有 错误提示 note…

Avue-data数据大屏显示饼图(附Demo)

目录 前言1. Sql查询2. 颜色细节 前言 对于这部分知识,原先有过柱状图实战:Avue-data数据大屏显示柱状图(附Demo讲解) 以下直奔主题,以Sql数据库数据为主 1. Sql查询 以饼图为例,需要返回的形式如下&am…

MySQL数据库切换瀚高数据库(PostgreSQL)导致SQL适配问题:BadSqlGrammarException

温馨提示: 下面的出现的情况属于层层递进的,如果只解决其中一种情况会接着报下一个情况,如果只想了解解决方案请直接移步至结论。 1. 情况一:ERROR: operator does not exist: smallint character varying 报错详细描述&#xf…

每日一学(1)

目录 1、ConCurrentHashMap为什么不允许key为null? 2、ThreadLocal会出现内存泄露吗? 3、AQS理解 4、lock 和 synchronized的区别 1、ConCurrentHashMap为什么不允许key为null? 底层 putVal方法 中 如果key || value为空 抛出…