加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C# 创建、更改Excel命名区域(NamedRange)

发布时间:2020-12-16 01:09:40 所属栏目:百科 来源:网络整理
导读:创建命名区域是指给选定的某个单元格或多个单元格区域设置名称,目的是方便我们在文件中的其他地方对该单元格区域进行引用能够简化公式引用或者方便数据管理。下面记录了具体的C#示例代码。这里创建命名区域分为了2种情况,分别对应不同的添加方法以及命名区

创建命名区域是指给选定的某个单元格或多个单元格区域设置名称,目的是方便我们在文件中的其他地方对该单元格区域进行引用能够简化公式引用或者方便数据管理。下面记录了具体的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[0];

步骤 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;
 Spire.Xls.Core;

namespace CreateNamedRange_XLS
{
    class Program
    {
        static void Main(string[] args)
        {
            创建Workbook实例
            Workbook workbook =  Workbook();
            加载Excel文件
            workbook.LoadFromFile();

            获取第1张工作表
            Worksheet sheet = workbook.Worksheets[0];

            定义第一个全局命名区域
            INamedRange NamedRange1 = workbook.NameRanges.Add(此方法定义的命名区域,引用时可适用于整个工作簿
            此方法定义的命名区域,引用时仅适用于命名区域所在工作表
            NamedRange1.RefersToRange = sheet.Range[定义第二个全局命名区域
            INamedRange NamedRange2 = workbook.NameRanges.Add();
            INamedRange NamedRange2 = sheet.Names.Add("第2批次入库量");
            NamedRange2.RefersToRange = sheet.Range[指定单元格写入文本
            sheet.Range[;

            在公式中引用命名区域
            sheet.Range[保存文档
            workbook.SaveToFile(,ExcelVersion.Version2013);
            System.Diagnostics.Process.Start();
        }
    }
}
View Code

?

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

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

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

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

获取表格中的指定命名区域
INamedRange namedRange = wb.NameRanges.GetByName(适用于全局命名区域(整个工作簿)
INamedRange namedRange = sheet.Names.GetByName("第2批次入库量");适用于局部命名区域(指定工作表)

修改指定命名区域的名称
namedRange.Name = newrange;
namedRange.RefersToRange = wb.Worksheets[0].Range[];
namedRange.RefersToRange = sheet.Range["G3:G7"];

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

namedRange = wb.NameRanges.GetByName();
namedRange.Visible = false;

步骤 4 :删除命名区域

wb.NameRanges.Remove(RangeNamesheet.Names.Remove("RangeName");

步骤 5:保存文档

wb.SaveToFile(newresult.xlsx

?

修改结果:

全部代码:

 ModifyNameRange_XLS
{
    创建文档,加载测试文件
            Workbook wb =  Workbook();
            wb.LoadFromFile(获取第一张工作表
            Worksheet sheet = wb.Worksheets[获取表格中的指定命名区域
            INamedRange namedRange = wb.NameRanges.GetByName(适用于全局命名区域(整个工作簿)
            适用于局部命名区域(指定工作表)

            修改指定命名区域的名称
            namedRange.Name = ;
            namedRange.RefersToRange = wb.Worksheets[];
            namedRange.RefersToRange = sheet.Range["G3:G7"];

            获取指定命名区域,并设置区域名称隐藏
            namedRange = wb.NameRanges.GetByName();
            namedRange.Visible = false删除文档中的指定命名区域的名称
            wb.NameRanges.Remove(sheet.Names.Remove("RangeName");

            保存文档
            wb.SaveToFile();
        }
    }
}
View Code

?

(本文完)

如需转载,请注明出处!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读