zoukankan      html  css  js  c++  java
  • Excel二次开发相关代码

    1. Ribbon获得文档名

    Excel.Worksheet activeWorksheet = ((Excel.Worksheet)Globals.ThisAddIn.Application.ActiveSheet);

    2. 获得Excel单元格内容

    var firstRow = activeWorksheet.get_Range("A1").Value2;

    3. Excel使用的行数

    activeWorksheet.UsedRange.Rows.Count;

    4. 添加工作表

    Excel.Worksheet newWorksheet;
    newWorksheet = (Excel.Worksheet)Globals.ThisWorkbook.Worksheets.Add();
    5. 复制工作表
    Globals.Sheet1.Copy(Globals.ThisWorkbook.Sheets[3]);
    6. 删除工作表
    Globals.Sheet1.Delete();
    7. 选择工作表
    Globals.Sheet1.Select();
     
    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 对象 
    
  • 相关阅读:
    node.js如何让前端请求时能跨域
    手把手教你使用webpack搭建vue框架
    手把手教你使用koa2
    react性能优化
    axios post 踩坑之 post传参
    小程序自定义左上角返回按钮跳转到指定界面
    webpack入门教程
    编写可维护的js代码
    js的严格模式
    vue短信验证性能优化写入localstorage中
  • 原文地址:https://www.cnblogs.com/jacinter/p/14275373.html
Copyright © 2011-2022 走看看