创建命名区域是指给选定的某个单元格或多个单元格区域设置名称,目的是方便我们在文件中的其他地方对该单元格区域进行引用能够简化公式引用或者方便数据管理。下面记录了具体的C#示例代码。这里创建命名区域分为了2种情况,分别对应不同的添加方法以及命名区域的引用范围,即:

1. 全局命名区域(方法:workbook.NameRanges.Add() )

2. 局部命名区域(方法:sheet.Names.Add () )

同时,对于Excel表格中已有的命名区域,可通过方法进行修改或者删除,包括

  • 更改区域名称
  • 隐藏指定命名区域名称
  • 删除指定命名区域

使用工具Free Spire.XLS for .NET(免费版)

注:下载Free Spire.XLS后解压安装,在编辑代码时,注意在程序中添加引用Spire.Xls.dll(如下图),dll文件在安装路径下的Bin文件夹中获取。

代码示例

【示例1】创建Excel命名区域

步骤 1:加载文档,获取工作表

//创建Workbook类的实例,加载文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("test.xlsx"); //获取第1张工作表
Worksheet sheet = workbook.Worksheets[];

步骤 2:创建命名区域

//定义第一个全局命名区域
INamedRange NamedRange1 = workbook.NameRanges.Add("第1批次入库量");//此方法定义的命名区域,引用时可适用于整个工作簿
//INamedRange NamedRange1 = sheet.Names.Add("第1批次入库量");//此方法定义的命名区域,引用时仅适用于命名区域所在工作表
NamedRange1.RefersToRange = sheet.Range["G3:G7"]; //定义第二个全局命名区域
INamedRange NamedRange2 = workbook.NameRanges.Add("第2批次入库量");
//INamedRange NamedRange2 = sheet.Names.Add("第2批次入库量");
NamedRange2.RefersToRange = sheet.Range["G8:G12"];

步骤 3: 在公式中引用命名区域

//指定单元格写入文本
sheet.Range["A14"].Text = "入库量合计"; //在公式中引用命名区域
sheet.Range["B14"].Formula = "=SUM(第1批次入库量,第2批次入库量)";

步骤 4:保存文档

 workbook.SaveToFile("result.xlsx", ExcelVersion.Version2013);

创建效果:

全部代码:

using Spire.Xls;
using Spire.Xls.Core; namespace CreateNamedRange_XLS
{
class Program
{
static void Main(string[] args)
{
//创建Workbook实例
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile("test.xlsx"); //获取第1张工作表
Worksheet sheet = workbook.Worksheets[]; //定义第一个全局命名区域
INamedRange NamedRange1 = workbook.NameRanges.Add("第1批次入库量");//此方法定义的命名区域,引用时可适用于整个工作簿
//INamedRange NamedRange1 = sheet.Names.Add("第1批次入库量");//此方法定义的命名区域,引用时仅适用于命名区域所在工作表
NamedRange1.RefersToRange = sheet.Range["G3:G7"]; //定义第二个全局命名区域
INamedRange NamedRange2 = workbook.NameRanges.Add("第2批次入库量");
//INamedRange NamedRange2 = sheet.Names.Add("第2批次入库量");
NamedRange2.RefersToRange = sheet.Range["G8:G12"]; //指定单元格写入文本
sheet.Range["A14"].Text = "入库量合计"; //在公式中引用命名区域
sheet.Range["B14"].Formula = "=SUM(第1批次入库量,第2批次入库量)"; //保存文档
workbook.SaveToFile("result.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("result.xlsx");
}
}
}

【示例2】更改Excel命名区域

步骤 1:加载文档,获取工作表

//创建文档,加载测试文件
Workbook wb = new Workbook();
wb.LoadFromFile("sample.xlsx"); //获取第一张工作表
Worksheet sheet = wb.Worksheets[];

步骤 2:修改命名区域名称

//获取表格中的指定命名区域
INamedRange namedRange = wb.NameRanges.GetByName("第1批次入库量");//适用于全局命名区域(整个工作簿)
//INamedRange namedRange = sheet.Names.GetByName("第2批次入库量");//适用于局部命名区域(指定工作表) //修改指定命名区域的名称
namedRange.Name = "newrange";
namedRange.RefersToRange = wb.Worksheets[].Range["G3:G7"];
//namedRange.RefersToRange = sheet.Range["G3:G7"];

步骤 3 :设置命名区域名称隐藏/显示

namedRange = wb.NameRanges.GetByName("第2批次入库量");
namedRange.Visible = false;

步骤 4 :删除命名区域

wb.NameRanges.Remove("RangeName");
//sheet.Names.Remove("RangeName");

步骤 5:保存文档

wb.SaveToFile("newresult.xlsx", FileFormat.Version2010);

测试文档:

修改结果:

全部代码:

using Spire.Xls;
using Spire.Xls.Core; namespace ModifyNameRange_XLS
{
class Program
{
static void Main(string[] args)
{
//创建文档,加载测试文件
Workbook wb = new Workbook();
wb.LoadFromFile("sample.xlsx"); //获取第一张工作表
Worksheet sheet = wb.Worksheets[]; //获取表格中的指定命名区域
INamedRange namedRange = wb.NameRanges.GetByName("第1批次入库量");//适用于全局命名区域(整个工作簿)
//INamedRange namedRange = sheet.Names.GetByName("第2批次入库量");//适用于局部命名区域(指定工作表) //修改指定命名区域的名称
namedRange.Name = "newrange";
namedRange.RefersToRange = wb.Worksheets[].Range["G3:G7"];
//namedRange.RefersToRange = sheet.Range["G3:G7"]; //获取指定命名区域,并设置区域名称隐藏
namedRange = wb.NameRanges.GetByName("第2批次入库量");
namedRange.Visible = false; //删除文档中的指定命名区域的名称
wb.NameRanges.Remove("RangeName");
//sheet.Names.Remove("RangeName"); //保存文档
wb.SaveToFile("newresult.xlsx", FileFormat.Version2010);
System.Diagnostics.Process.Start("newresult.xlsx");
}
}
}

(本文完)

如需转载,请注明出处!

C# 创建、更改Excel命名区域(NamedRange)的更多相关文章

  1. Java 创建、编辑、删除Excel命名区域

    Excel命名区域,即对指定单元格区域进行命名,以便对单元格区域引用,如在公式运用中可以引用指定命名区域进行公式操作.在创建命名区域时,可针对整个工作簿来创建,即workbook.getNameRan ...

  2. Excel命名区域的创建、修改、删除、命名

    因工作需要,需要用到 Excel实现多级下拉列表,这是预备知识! 链接地址:http://wenku.baidu.com/link?url=vHkAo25IXo6mabms-Jv0m3T7BRfAMg ...

  3. Excel应该这么玩——4、命名区域:搞定下拉框

    前三篇都是讲的给Excel元素命名,本篇再介绍一种命名的使用方式:命名区域.区域是多个单元格的集合,可以是单行.单列或者类似表格的单元格矩阵,也可以是不连续的多个单元格,但很少用到.当然,一个单元格也 ...

  4. ( 转)Ubuntu下创建、重命名、删除文件及文件夹,强制清空回收站方法

    Ubuntu下创建.重命名.删除文件及文件夹,强制清空回收站方法 mkdir 目录名 ——创建一个目录 rmdir 空目录名 ——删除一个空目录 rm 文件名 文件名 ——删除一个文件或多个文件 rm ...

  5. Dynamics AX 2012 R2 无法创建类"Excel.Application"的COM对象

        Reinhard在做一个Excel导入项目时,发现X++代码一旦执行到Excel组件部分,就会报如下错误: 无法创建类"Excel.Application"的COM对象.请 ...

  6. (转载)ORA-14452:试图创建,更改或删除正在使用的临时表中的索引

    因为表kol_xx_fin050_temp 为临时表,而且有其他session正在使用. 处理步骤: 1.先从 dba_objects / user_objects中查询到该表的object_id: ...

  7. c#.net对excel的操作——创建一个excel报表两个sheet就是2个表分别添加内容

    添加引用:Microsoft.Office.Interop.Excel //创建excel对象,就是实例化一个excel对象            Application excel=new Appl ...

  8. ORA-14452: 试图创建, 更改或删除正在使用的临时表中的索引

    ORA-14452: 试图创建, 更改或删除正在使用的临时表中的索引       因为表KOL_XX_FIN050_TEMP 为临时表,而且有其他session正在使用. 处理步骤: 1.先从 dba ...

  9. vs2016 创建 vsto excel 文件项目的一个问题

    新工作需要些一个基于Excel开发一个工具,vs的 vsto 功能很好用,封装了基于开发office 开的一些工具.但是在实际使用时,创建项目总是报错,提示打开excel文件失败.项目是需要创建一个e ...

随机推荐

  1. sun.misc.Unsafe 详解

    原文地址 译者:许巧辉 校对:梁海舰 Java是一门安全的编程语言,防止程序员犯很多愚蠢的错误,它们大部分是基于内存管理的.但是,有一种方式可以有意的执行一些不安全.容易犯错的操作,那就是使用Unsa ...

  2. JVM 第一次学习总结(2019年4月)

    1.内存模型 起源:在计算机系统,加入了一层读写速度尽可能接近处理器运算速度的高速缓存来作为内存和处理器之间的缓冲. 问题:缓存一致性.在多处理器系统中,每个处理器都有自己的高速缓存(抽象为工作内存) ...

  3. 深入学习MySQL事务:ACID特性的实现原理

    事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段.本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID特性,并分析其实现原理. MySQL博大精深,文 ...

  4. SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能

    在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...

  5. C#-Xamarin利用ZXing.Net.Mobile进行扫码

    前言 很多人觉得Xamarin的开源少,没法用来开发项目. 但,实际上Xamarin已经有很多开源代码了:只要不是特别特殊的项目,基本上是都可以满足开发. 下面我们来看一下Xamarin中利用开源代码 ...

  6. Win64下编译集成GEOS和Proj4的GDAL

    目录 1.编译GEOS 2.编译Proj4 3.GDAL集成Proj4和GEOS 1) 修改安装的目录 2) 配置Proj4 3) 配置GEOS 4) 自定义动态库名称(可跳过) 5) 编译 1.编译 ...

  7. 免费开源ERP-成功案例分析(1)

    Odoo用户案例 Odoo用户概要 关于Odoo全球的用户,我们来看一些数据: Odoo目前全球有300万使用者 Odoo系统上每天新创建的数据库超过1000个 Odoo和Word.Excel.Pow ...

  8. oppo设备怎么样无需root激活XPOSED框架的教程

    在非常多部门的引流或业务操作中,基本上都需要使用安卓的强大XPOSED框架,近期,我们部门购来了一批新的oppo设备,基本上都都是基于7.0以上版本,基本上都不能够获得root的su超级权限,即使一部 ...

  9. SQL Server排名或排序的函数

    SQL Server获得排名或排序的函数有如下几种: 1.Rank():在结果集中每一条记录所在的排名位置,但排名可能不连续,例如:若同一组内有两个第一名,则该组内下一个名次直接跳至第三名   sel ...

  10. MySQL和SQLyog的配置-安装及遇到的问题

    1. 安装MySQL 我先是参考了菜鸟教程上的#Windows 上安装 MySQL #版块的安装教程,不过经历了种种磨难,我最后是按照#此篇博客#安装成功的. 这两篇教程最大的差别是在于下载的版本不同 ...