• Excel的Range对象(C#)


    Range 对象是 Excel 应用程序中最经常使用的对象;在操作 Excel 内的任何区域之前,都需要将其表示为一个 Range 对象,然后使用该 Range 对象的方法和属性。一个 Range 对象代表一个单元格、一行、一列、包含一个或者更多单元块(可以是连续的单元格,也可以式不连续的单元格)的选定单元格,甚至是多个工作表上的一组单元格。
    
    在代码中引用范围。
    
    Address 属性:这个属性返回范围坐标的字符串,坐标以下面几种格式之一表示,包括:“$A$1”(单元格在位置 A1)、“$1”(在工作表的第一行)和“$A$1:$C$5”(范围包括介于 A1 和 C5 之间矩形内的所有单元格)。“$”表示绝对坐标(而非相对坐标)。
    
    Excel.Worksheet ws = (Excel.Worksheet)ThisWorkbook.Worksheets[1];
    Excel.Range rng;
    rng = ThisApplication.ActiveCell;
    rng = ws.get_Range("A1", Type.Missing);//使用对象的 Range 属性指定一个区域
    rng = ws.get_Range("A1:B12", Type.Missing);//使用对象的 Range 属性指定一个区域
    rng = (Excel.Range)ws.Cells[1, 1];//使用工作表的 Cells 属性,指定单个行和列值
    rng = ThisApplication.Range("SomeRangeName", Type.Missing);//引用一个命名范围
    
    
    rng = ws.Range("A1", "C5")//直接引用范围的 Cells、Rows 或 Columns 属性,作用相同
    rng = ws.Range("A1", "C5").Cells
    rng = ws.Range("A1", "C5").Rows
    rng = ws.Range("A1", "C5").Columns
    
    rng = (Excel.Range)ws.Rows[1, Type.Missing];//引用特定行或特定列或行和列的范围
    rng = (Excel.Range)ws.Rows["1:3", Type.Missing];
    rng = (Excel.Range)ws.Columns[3, Type.Missing];
    
    //Application 对象的 Selection 属性返回与选定单元格对应的范围
    rng = (Excel.Range)ThisApplication.Selection;
    
    
    //创建一个包含其他两个合并范围的范围(在引号内指定两个范围,并用逗号隔开)
    rng = ThisApplication.get_Range("A1:D4, F2:G5", Type.Missing);//与后三行效果相同
    rng1 = ThisApplication.get_Range("A1", "D4");
    rng2 = ThisApplication.get_Range("F2", "G5");
    rng = ThisApplication.Union(rng1, rng2, Type.Missing, Type.Missing, ……);
    
    //创建一个引用其他两个范围重叠部分的范围(在引号内指定两个范围,并不使用分隔符)
    rng = ThisApplication.get_Range("A1:D16 B2:F14", Type.Missing);//与后三行效果相同
    rng1 = ThisApplication.get_Range("A1", "D16");
    rng2 = ThisApplication.get_Range("B2", "F14");
    rng = ThisApplication.Intersect(rng1, rng2,Type.Missing, Type.Missing, Type.Missing, Type.Missing,……);
    
    //使用范围的 Offset 属性取得相对于初始范围的一个偏移
    rng = (Excel.Range) ws.Cells[1, 1];
    for (int i = 1; i <= 5; i++)
    {
        rng.get_Offset(i, 0).Value2 = i.ToString();
    }
    
    //使用范围的 CurrentRegion 属性取得一个代表当前区域的范围,这个当前区域由最近的空行和列限定,即连接在一起的单元格
     ThisApplication.get_Range("C3", Type.Missing).CurrentRegion.Font.Bold = true;
    
    //使用范围的 Areas 属性取得范围集合,其中每个范围对应于范围内容的一个区域
    
    rng = ThisApplication.get_Range("Test", Type.Missing);
    for (int i = 1; i <= rng.Areas.Count; i++)
    { 
         MessageBox.Show(
            rng.Areas[i].get_Address(Type.Missing, Type.Missing, 
            Excel.XlReferenceStyle.xlA1, Type.Missing, Type.Missing));
    }
    //使用 End 属性,以及一个 XlDirection 枚举值(xlUp、xlToRight、xlToLeft、xlDown)来取得一个代表区域末端单元格的范围(即四个方向上离该选中范围最远的单元格)
    Excel.Range rngLeft, rngRight, rngUp, rngDown;
    rng = (Excel.Range) ThisApplication.Selection;
    rngRight = rng.get_End(Excel.XlDirection.xlToRight);
    rngLeft = rng.get_End(Excel.XlDirection.xlToLeft);
    rngUp = rng.get_End(Excel.XlDirection.xlUp);
    rngDown = rng.get_End(Excel.XlDirection.xlDown);
    
    //使用 EntireRow 或 EntireColumn 属性引用包含特定范围的行或列
    rng = ThisApplication.get_Range("Test", Type.Missing);
    rng.Areas[2].EntireRow.Font.Bold = true;
    
    
    在代码中操作范围。
    
    自动填充:AutoFill
    查找:Find
    排序:Sort
    Cells 获取一个 Range 对象,该对象表示工作表上的所有单元格(不仅仅是当前正在使用的单元格)。
    Cells[行,列]
    
    Columns 获取一个表示工作表上的所有列的 Range 对象
    Rows 获取一个表示工作表上的所有行的 Range 对象 
     
  • 相关阅读:
    Begin Example with Override Encoded SOAP XML Serialization
    State Machine Terminology
    How to: Specify an Alternate Element Name for an XML Stream
    How to: Publish Metadata for a WCF Service.(What is the Metadata Exchange Endpoint purpose.)
    Beginning Guide With Controlling XML Serialization Using Attributes(XmlSerializaiton of Array)
    Workflow 4.0 Hosting Extensions
    What can we do in the CacheMetaData Method of Activity
    How and Why to use the System.servicemodel.MessageParameterAttribute in WCF
    How to: Begin Sample with Serialization and Deserialization an Object
    A Test WCF Service without anything of config.
  • 原文地址:https://www.cnblogs.com/xyzhuzhou/p/2599022.html
Copyright © 2020-2023  润新知