.NET平台使用C#设置Excel单元格数值格式
设置Excel单元格的数字格式是创建、修改和格式化Excel文档的关键步骤之一,它不仅确保了数据的正确表示,还能够增强数据的可读性和专业性。正确的数字格式可以帮助用户更直观地理解数值的意义,减少误解,并且对于自动化报告生成、财务计算等应用场景来说,精确的格式控制也是保证数据准确性和一致性的重要保障。在.NET平台上,我们可以使用C#轻松完成Excel单元格的数字格式设置,实现自动化处理。
本文将介绍如何使用C#在.NET程序中实现对Excel单元格数字格式的设置,帮助实现更完善的Excel文件处理。
文章目录
- 用C#设置Excel单元格的数字格式
- 用C#添加指定格式的值到Excel单元格
本文所使用的方法需要用到免费的Free Spire.XLS for .NET,NuGet:PM> Install-Package FreeSpire.XLS。
用C#设置Excel单元格的数字格式
Excel单元格数字格式的设置可以通过数字格式代码来实现。使用CellRange.Value或CellRange.NumberValue属性向单元格添加值之后,我们可以再使用CellRange.NumberFormat属性通过格式代码设置数值的显示格式。格式代码请参考:Excel单元格数字格式代码。
以下是操作步骤示例:
- 导入所需模块。
- 创建
Workbook对象。 - 使用
Workbook.Worksheets[]属性获取指定获取工作表。 - 使用
Worksheet.Range[]可获取指定单元格,然后可以使用CellRange.Value或CellRange.NumberValue属性向指定单元格添加值。 - 使用
CellRange.NumberFormat属性通过格式代码设置数值的显示格式。 - 使用
Workbook.SaveToFile()方法保存工作簿,并释放资源。
代码示例
using System.Drawing;
using Spire.Xls;class Program
{static void Main(string[] args){// 创建一个新的工作簿实例Workbook workbook = new Workbook();// 获取第一个工作表Worksheet sheet = workbook.Worksheets[0];// 添加标题sheet.Range["B1"].Text = "数字格式";sheet.Range["B1"].Style.Font.IsBold = true;sheet.Range["B1"].Style.Font.FontName = "HarmonyOS Sans SC";sheet.Range["B1:C1"].Merge();sheet.Range["B1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center;// 添加数字格式示例及对应的值AddNumberFormatExample(sheet, "B3", "C3", "0", "1234.5678"); // 格式为整数AddNumberFormatExample(sheet, "B4", "C4", "0.00", "1234.5678"); // 格式为保留两位小数AddNumberFormatExample(sheet, "B5", "C5", "#,##0.00", "1234.5678"); // 格式为带千位分隔符且保留两位小数AddNumberFormatExample(sheet, "B6", "C6", "$#,##0.00", "1234.5678"); // 格式为货币格式// 添加负数格式示例AddNumberFormatExample(sheet, "B7", "C7", "0;[Red]-0", "-1234.5678"); // 格式为负数用红色显示AddNumberFormatExample(sheet, "B8", "C8", "0.00;[Red]-0.00", "-1234.5678"); // 格式为保留两位小数,负数用红色显示// 添加科学计数法和百分比格式示例AddNumberFormatExample(sheet, "B9", "C9", "0.00E+00", "1234.5678"); // 格式为科学计数法AddNumberFormatExample(sheet, "B10", "C10", "0.00%", "0.5678"); // 格式为百分比// 添加日期和时间格式示例AddNumberFormatExample(sheet, "B11", "C11", "yyyy-MM-dd", "44930.0"); // Excel 日期值对应 2023-01-01AddNumberFormatExample(sheet, "B12", "C12", "HH:mm:ss", "0.75"); // Excel 时间值对应 18:00:00// 添加文本格式示例AddNumberFormatExample(sheet, "B13", "C13", "@", "文本示例"); // 格式为文本// 设置格式sheet.Range["B3:B13"].Style.Color = Color.Gray;sheet.Range["C3:C13"].Style.Color = Color.LightGray;sheet.Columns[1].ColumnWidth = 24;sheet.Columns[2].ColumnWidth = 24;// 将工作簿保存到文件workbook.SaveToFile("output/设置Excel单元格数字格式.xlsx", ExcelVersion.Version2016);}private static void AddNumberFormatExample(Worksheet sheet, string textCell, string valueCell, string format, string value){sheet.Range[textCell].Text = format; // 显示数字格式代码sheet.Range[valueCell].Value = value; // 添加值// sheet.Range[valueCell].NumberValue = Double // 或添加数值sheet.Range[valueCell].NumberFormat = format; // 应用数字格式}
}
结果

用C#添加指定格式的值到Excel单元格
我们还可以直接使用库中提供的CellRange类下的属性,直接向单元格或单元格范围添加指定类型的带格式的值。以下是属性及对应添加的值:
| 属性 | 值 |
|---|---|
Text | 文本(string) |
NumberValue | 数值(Double) |
BooleanValue | 布尔值(Boolean) |
DateTimeValue | 日期和时间(DateTime) |
HtmlString | HTML格式字符代码(string) |
| 以下是操作步骤示例: |
- 导入所需模块。
- 创建
Workbook对象。 - 使用
Workbook.Worksheets[]属性获取指定获取工作表。 - 使用
Worksheet.Range[]可获取指定单元格。 - 使用
CellRange类下的属性向指定单元格添加指定类型的值。 - 根据需要设置格式。
- 使用
Workbook.SaveToFile()方法保存工作簿,并释放资源。
代码示例
using System;
using Spire.Xls;class Program
{static void Main(string[] args){// 创建一个新的工作簿实例Workbook workbook = new Workbook();// 获取第一个工作表Worksheet sheet = workbook.Worksheets[0];// 添加文本值sheet.Range["C3"].Text = "示例文本";// 添加数值sheet.Range["C4"].NumberValue = 1234.5678;// 添加布尔值sheet.Range["C5"].BooleanValue = true;// 添加日期时间值sheet.Range["C6"].DateTimeValue = new DateTime(2024, 12, 12);// 添加 HTML 字符串sheet.Range["C7"].HtmlString = "<b>加粗文本</b>";// 格式化单元格sheet.Range["C3:C7"].Style.HorizontalAlignment = HorizontalAlignType.Center;sheet.Range["C3:C7"].Style.VerticalAlignment = VerticalAlignType.Center;sheet.Range["C3:C7"].Style.Font.Size = 14;// 自动调整列宽for (int i = 3; i <= 7; i++){sheet.AutoFitColumn(i - 1); // 注意:C#中列索引从0开始}// 保存工作簿workbook.SaveToFile("output/添加带数字格式的值到Excel.xlsx", ExcelVersion.Version2016);// 清理资源workbook.Dispose();}
}
结果

本文演示如何在.NET平台使用C#设置Excel单元格的数字格式,以及添加指定类型的值到Excel单元格,帮助Excel文件的精确自动化处理。
相关文章:
.NET平台使用C#设置Excel单元格数值格式
设置Excel单元格的数字格式是创建、修改和格式化Excel文档的关键步骤之一,它不仅确保了数据的正确表示,还能够增强数据的可读性和专业性。正确的数字格式可以帮助用户更直观地理解数值的意义,减少误解,并且对于自动化报告生成、财…...
零基础学安全--wireshark简介
目录 主要功能 捕获网络数据包 协议解析 数据包分析 数据包重组 过滤功能 统计与图表功能 官网 Wireshark是一个开源的网络协议分析工具 主要功能 捕获网络数据包 能够实时捕获网络中传输的数据包,用户选择要监听的网络接口(如以太网、WiFi等…...
[Flutter] : Clipboard
import package:flutter/material.dart; import package:flutter/services.dart; setData Clipboard.setData(ClipboardData(text: "传入的文字内容")); getData Clipboard.getData(Clipboard.kTextPlain) 记录 | Flutter剪切板-刨根问底做一个可以在后台…...
ArcGIS MultiPatch数据转换Obj数据
文章目录 ArcGIS MultiPatch数据转换Obj数据1 效果2 技术路线2.1 Multipatch To Collada2.2 Collada To Obj3 代码实现4 附录4.1 环境4.2 一些坑ArcGIS MultiPatch数据转换Obj数据 1 效果 2 技术路线 MultiPatch --MultipatchToCollada–> Collada --Assimp–> Obj 2.…...
《开源数据:开启信息共享与创新的宝藏之门》
《开源数据:开启信息共享与创新的宝藏之门》 一、开源数据概述(一)开源数据的定义(二)开源数据的发展历程 二、开源数据的优势(一)成本效益优势(二)灵活性与可定制性&…...
如何评估基于TRIZ理论生成的方案的可行性和有效性?
在科技创新与问题解决的过程中,TRIZ理论(发明问题解决理论)以其系统性和高效性著称,为工程师和创新者提供了一套强大的工具和方法。然而,仅仅依靠TRIZ理论生成创新方案并不足以确保项目的成功,关键在于如何…...
sh-寡肽-78——头发护理多肽原料,改善头发外观
主要特征 人的头发纤维结构由角质层、皮质和髓质组成。角质层约占头发重量的 15%,由重叠的细胞层组成,类似于鳞片系统,半胱氨酸含量很高。它为头发纤维提供保护作用。皮质是头发的中间区域,负责头发的强度、弹性和颜色。它由多种细…...
metagpt 多智能体系统
metagpt 多智能体系统 代码1. 动作及角色定义2. 主函数 代码解释1. 导入模块:2. 环境设置:3. 定义行动(Action):4. 定义角色(Role):5. 学生和老师的行为:6. 主函数&#…...
下采样在点云处理中的关键作用——以PointNet++为例【初学者无门槛理解版!】
一、前言 随着3D传感器技术的快速发展,点云数据在计算机视觉、机器人导航、自动驾驶等领域中的应用日益广泛。点云作为一种高效的3D数据表示方式,能够精确地描述物体的几何形状和空间分布。然而,点云数据通常具有高维度和稀疏性的特点&#…...
pytorch ---- torch.linalg.norm()函数
torch.linalg.norm 是 PyTorch 中用于计算张量范数(Norm)的函数。范数是线性代数中的一个重要概念,用于量化向量或矩阵的大小或长度。这个函数可以处理任意形状的张量,支持多种类型的范数计算。 1.函数签名 torch.linalg.norm(…...
系列1:基于Centos-8.6部署Kubernetes (1.24-1.30)
每日禅语 “木末芙蓉花,山中发红萼,涧户寂无人,纷纷开自落。”这是王维的一首诗,名叫《辛夷坞》。这首诗写的是在辛夷坞这个幽深的山谷里,辛夷花自开自落,平淡得很,既没有生的喜悦ÿ…...
spring学习(spring-bean实例化(无参构造与有参构造方法实现)详解)
目录 一、spring容器之bean的实例化。 (1)"bean"基本概念。 (2)spring-bean实例化的几种方式。 二、spring容器使用"构造方法"的方式实例化bean。 (1)无参构造方法实例化bean。 &#…...
Arm Cortex-M处理器对比表
Arm Cortex-M处理器对比表 当前MCU处理器上主要流行RISC-V和ARM处理器,其他的内核相对比较少;在这两种内核中,又以Arm Cortex-M生态环境相对健全,大部分的厂家都在使用ARM的处理器。本文主要介绍Arm Cortex-M各个不同系列的参数对…...
【git、gerrit】特性分支合入主分支方法 git rebase 、git cherry-pick、git merge
文章目录 1. 场景描述1.1 分支状态 2. 推荐的操作方式方法 1:git merge(保留分支结构)方法 2:git rebase(线性合并提交历史)直接在master分支执行git merge br_feature,再 执行 git pull --reba…...
WPF 相比 winform 的优势
wpf 相比 winform 的一些优点,网上也是众说纷纭,总的来说包括下面几点: 丰富的视觉效果:能够创建更具吸引力和现代化的用户界面,支持更复杂的图形和动画效果。不需要像 winform 一样,稍微做一点效果&#x…...
PYQT5程序框架
pyqt5程序框架_哔哩哔哩_bilibili 1.UI代码 Qhkuja.py # -*- coding: utf-8 -*-# Form implementation generated from reading ui file Qhkuja.ui # # Created by: PyQt5 UI code generator 5.15.7 # # WARNING: Any manual changes made to this file will be lost when py…...
Linux 中的 mkdir 命令:深入解析
在 Linux 系统中,mkdir 命令用于创建目录。它是文件系统管理中最基础的命令之一,广泛应用于日常操作和系统管理中。本文将深入探讨 mkdir 命令的功能、使用场景、高级技巧,并结合 GNU Coreutils 的源码进行详细分析。 1. mkdir 命令的基本用法…...
【人工智能解读】神经网络(CNN)的特点及其应用场景器学习(Machine Learning, ML)的基本概念
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…...
Linux栈帧
相关寄存器&指令 寄存器 rax(accumulator):return value rbx(base) rcx(count):4st argument rdx(data):3st argument rsi(sour…...
leetcode刷题——回溯算法(1)
目录 77题. 组合 216.组合总和III 17.电话号码的字母组合 39. 组合总和 40.组合总和II 131.分割回文串 93.复原IP地址 78.子集 90.子集II 491.非递减子序列 46.全排列 47.全排列 II 332.重新安排行程 51. N皇后 37. 解数独 回溯的本质是穷举,穷举所有…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
