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

news2024/11/27 5:06:15

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

文章目录

    • 通过格式代码设置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. 释放资源。

代码示例:

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单元格数字格式

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

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

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

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

相关文章

开发中遇到的一个bug

遇到的报错信息是这样的&#xff1a; java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [hm-api,hm-common,hm-service] are excluded from annotation processing 翻译过来就是存在循环引用的情况&#xff0c;导…

Golang | Leetcode Golang题解之第172题阶乘后的零

题目&#xff1a; 题解&#xff1a; func trailingZeroes(n int) (ans int) {for n > 0 {n / 5ans n}return }

MySQL的DDL语句

文章目录 ☃️概述☃️DDL&#xff08;数据定义语言&#xff09;☃️数据库操作☃️表操作☃️DDL的重要性 ☃️概述 MySQL 通用语法分类 ● DDL: 数据定义语言&#xff0c;用来 定义数据库对象&#xff08;数据库、表、字段&#xff09; ● DML: 数据操作语言&#xff0c;用…

天擎客户端卸载 自我保护异常

问题&#xff1a;客户端卸载失败提示“检测到自我保护状态异常&#xff0c;停止卸载” 下列操作&#xff0c;均在客户端进行&#xff0c;别改成服务端的了 进入天擎客户端主目录&#xff0c;默认路径为 C:\Program Files (x86)\Qianxin\Tianqing 将avsecbase.dll 重命名为 1…

JAVA NIO(二) Buffer和Channel

一&#xff0c;基本使用 1&#xff0c; 一个Socket连接使用一个Channel来表示&#xff0c;以前直接操作Socket文件描述符来对读写缓冲区操作&#xff0c;比如读数据到用户空间的一个byte数组&#xff0c;NIO中Channel对这个过程作了封装&#xff0c;其中用户空间的byte数组就类…

电商数据:准确性与覆盖率的关键意义

在当今的电商环境下&#xff0c;以电商数据为驱动&#xff0c;品牌能够开展诸多与渠道相关的工作&#xff0c;像是电商数据监测、数据分析以及低价治理等。然而&#xff0c;所有这些工作的首要前提便是数据的准确性必须达到较高水平。倘若准确性无法得到有效保障&#xff0c;那…

C语言 | Leetcode C语言题解之第172题阶乘后的零

题目&#xff1a; 题解&#xff1a; int trailingZeroes(int n) {int ans 0;while (n) {n / 5;ans n;}return ans; }

【STM32】时钟树系统

1.时钟树简介 1.1五个时钟源 LSI是低速内部时钟&#xff0c;RC振荡器&#xff0c;频率为32kHz左右。供独立看门狗和自动唤醒单元使用。 LSE是低速外部时钟&#xff0c;接频率为32.768kHz的石英晶体。这个主要是RTC的时钟源。 HSE是高速外部时钟&#xff0c;可接石英*/陶瓷谐振…

el-input-number 限制输入正整数

vue 页面 限制输入最小值为0 :min"0" <el-input-number v-model"scope.row.num" change"handleNumChange(scope)" keydown.enter.prevent style"width: 200px; " :min"0" />methods 里面限制输入的数字不为小数 使…

DPDK与传统收发报文的区别

1.去除中断 传统的收发报文方式都必须采用硬中断来做通讯&#xff0c;每次硬中断大约消耗100微秒&#xff0c;这还不算因为终止上下文所带来的Cache Miss。 DPDK采用轮询模式驱动(PMD)。 PMD由用户空间的特定的驱动程序提供的API组成&#xff0c;用于对设备和它们相应的…

Swoole_loader扩展安装图文教程 Swoole扩展文件下载

Swoole_loader扩展安装图文教程 Swoole扩展文件下载 安装和配置Swoole Loader 1 - 下载Swoole Loader 请下载兼容PHP7.2和非线程安全的Swoole Loader扩展&#xff0c;点击下载适配环境的扩展文件 2 - 安装Swoole Loader 将刚才下载的Swoole Loader扩展文件&#xff08;swo…

Redis—List数据类型及其常用命令详解

文章目录 一、Redis概述List类型1 LPUSH:将一个或多个值插入到列表头部2 RPUSH:将一个或多个值插入到列表尾部3 LPOP:从列表头部弹出并移除一个或多个元素4 RPOP&#xff1a;从列表尾部弹出一个或多个元素5 LLEN:获取 Redis 列表的长度6 LRANGE:获取 Redis 列表中指定范围内的元…

SpringCloud 基于Nacos和Eureka 实现双注册双订阅

一、使用场景/原因 过渡期迁移: 当系统从一个服务注册中心迁移到另一个时&#xff0c;例如从 Eureka 迁移到 Nacos&#xff0c;可以在过渡期内同时使用两个注册中心&#xff0c;确保服务平稳迁移&#xff0c;逐步过渡&#xff0c;避免一次性切换带来的风险。 兼容性考虑: 不同的…

http/2 二进制分帧层 (Binary Framing Layer)讲解

文章目录 二进制帧HTTP/2 中的帧、消息和流1. 帧&#xff08;Frame&#xff09;2. 消息&#xff08;Message&#xff09;3. 流&#xff08;Stream&#xff09;总结示例&#xff1a; 二进制帧结构1.帧头部结构2.帧负载数据 请求和响应多路复用 链接参考&#xff1a;https://web.…

C#修改 EXE 文件图标和 winForm 窗口图标

修改 EXE 文件图标 1.准备好图片&#xff0c;转换为 Icon 图片&#xff1b; 2.右键工程&#xff0c;选择属性&#xff1b; 3.选择 Icon 图标即可&#xff1b; 4.重新生成可执行文件&#xff0c;查看。 修改 winForm 窗口图标 1.选中 winForm &#xff0c;查看属性&#x…

天马学航——智慧教务系统(移动端)开发日志三

天马学航——智慧教务系统(移动端)开发日志三 日志摘要&#xff1a;更新了学生选课模块、我的课程模块以及退课的功能&#xff0c;优化了后端数据库的缓存 1、学生选课模块 学生选课模块主要实现&#xff0c;学生根据需求进行选课操作&#xff0c;通过后端查询到所有教师的课…

mysql 主从延迟

mysql 主从延迟 精华推荐 | 【MySQL技术专题】「主从同步架构」全面详细透析MySQL的三种主从复制&#xff08;Replication&#xff09;机制的原理和实战开发&#xff08;原理实战&#xff09; https://blog.csdn.net/l569590478/article/details/128329929 mysql主从之多线程复…

Nuxt 3 路由系统详解:配置与实践指南

title: Nuxt 3 路由系统详解&#xff1a;配置与实践指南 date: 2024/6/21 updated: 2024/6/21 author: cmdragon excerpt: 摘要&#xff1a;本文是一份关于Nuxt 3路由系统的详尽指南。它从介绍Nuxt 3的基本概念开始&#xff0c;包括Nuxt 3与Nuxt 2的区别和选择Nuxt 3的理由。…

创建OpenWRT虚拟机

环境&#xff1a;Ubuntu 2204&#xff0c;VM VirtualBox 7.0.18 安装必备软件包&#xff1a; sudo apt update sudo apt install subversion automake make cmake uuid-dev gcc vim build-essential clang flex bison g gawk gcc-multilib g-multilib gettext git libncurses…

供应链投毒预警 | utilitytool系列Py包开展XenoRAT远控木马投毒

概述 上周&#xff08;2024年6月14号&#xff09;&#xff0c;悬镜供应链安全情报中心在Pypi官方仓库&#xff08;https://pypi.org/&#xff09;中捕获2起针对Windows系统的Python包投毒事件&#xff0c;涉及Python组件包utilitytool及utilitytools&#xff0c;投毒者&#x…