`

C# 操作Excel命名区域(NamedRange):创建、更改、删除命名区域

阅读更多

创建命名区域是指给选定的某个单元格或多个单元格区域设置名称,目的是方便我们在文件中的其他地方对该单元格区域进行引用能够简化公式引用或者方便数据管理。下面将介绍具体的示例代码。这里创建命名区域分为了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命名区域

 

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[0];

            //定义第一个全局命名区域
            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命名区域

 

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[0];

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

            //修改命名区域的名称和引用单元格区域
            namedRange.Name = "newrange";
            namedRange.RefersToRange = wb.Worksheets[0].Range["G3:G7"];//适用于全局命名区域(整个工作簿)
            //namedRange.RefersToRange = sheet.Range["D3:D8"];//适用于局部命名区域(指定工作表)

            //获取指定命名区域,并设置区域名称隐藏
            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");
        }
    }
}

 测试文档:


 

修改结果:


 

(本文完)

 

 

  • 大小: 23.8 KB
  • 大小: 70 KB
  • 大小: 70.5 KB
  • 大小: 77.1 KB
0
0
分享到:
评论

相关推荐

    Excel 2010对象大全

    11. **NamedRange对象**:代表工作簿中的命名范围,便于引用和操作一组特定的单元格。 12. **AddIn对象**:代表Excel加载宏,允许扩展Excel的功能。 13. **Format对象**,如Font、Border和Interior:用于控制...

    excel VBA 对象实例

    除了以上提到的对象,还有许多其他重要的对象,如`Chart`(图表)、`PivotTable`(数据透视表)、`NamedRange`(命名范围)等。通过组合使用这些对象及其方法,我们可以实现复杂的自动化任务,如数据分析、报告生成...

    基于官方Doc的xlwings入门教程(一)

    xlwings是一款开源的Python库,主要作用是简化对Microsoft Excel文件的操作,允许用户使用Python代码来读取、写入和操作Excel工作簿。xlwings对于那些熟悉Python编程,同时需要处理Excel表格数据的开发者来说,是一...

    好用的phpExcel

    is_null($namedRange) && @isset($this->_namedRanges[$namedRange])) { return $this->_namedRanges[$namedRange]; } return null; } /** * Remove named range * * @param string $namedRange ...

Global site tag (gtag.js) - Google Analytics