【C#】【EXCEL】BumblebeeComponentsAnalysisGH_Ex_Ana_CondBlank.cs

本文主要是介绍【C#】【EXCEL】BumblebeeComponentsAnalysisGH_Ex_Ana_CondBlank.cs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这段代码定义了一个名为 GH_Ex_Ana_CondBlank 的类,它是一个 Grasshopper 组件,用于在 Excel 工作表中为特定范围添加条件格式。具体功能和介绍如下:

  1. 功能概述:
    这个组件用于在 Excel 中为指定的单元格范围添加基于空白值的条件格式。它允许用户高亮显示空白或非空白的单元格。

  2. 主要特性:

    • 可以设置高亮颜色
    • 可以选择高亮空白或非空白单元格
    • 可以选择清除现有的条件格式
    • 可以控制是否激活条件格式
  3. 输入参数:

    • 工作表和范围(从基类继承)
    • 单元格颜色(用于高亮显示)
    • 翻转选项(决定是高亮空白还是非空白单元格)
    • 清除选项(是否清除现有条件格式)
    • 激活选项(是否应用条件格式)
  4. 输出:

    • 应用了条件格式的 Excel 范围
  5. 使用场景:
    这个组件可以用于数据分析或可视化,帮助用户快速识别 Excel 表格中的空白或填充单元格。例如,在数据清理过程中识别缺失数据,或在数据录入过程中突出显示已填写的字段。

  6. 技术细节:

    • 继承自 GH_Ex_Rng__Base 类,可能是一个自定义的基础 Excel 范围操作组件
    • 使用 Grasshopper 的组件框架
    • 集成了 Excel 操作功能,可能使用了某种 Excel 互操作库
  7. 用户界面:

    • 在 Grasshopper 中作为一个次要(secondary)级别的组件显示
    • 有自定义图标(BB_Cond_Blank_01

总的来说,这是一个专门用于 Excel 数据处理的 Grasshopper 插件组件,为用户提供了一种简单的方式来可视化和分析 Excel 中的空白数据。

Flow diagram

SolveInstance / 解决实例
Yes
Yes
No
No
Get Worksheet / 获取工作表
SolveInstance Method / 解决实例方法
Get Range / 获取范围
Get Color / 获取颜色
Get Flip / 获取翻转状态
Get Clear / 获取清除状态
Get Activate / 获取激活状态
Start / 开始
Initialize Component / 初始化组件
Register Input Parameters / 注册输入参数
Register Output Parameters / 注册输出参数
Activate? / 是否激活?
Clear? / 是否清除?
ClearConditions / 清除条件
AddConditionalBlanks / 添加条件格式
Set Output / 设置输出
End / 结束

这个流程图展示了 GH_Ex_Ana_CondBlank 类的主要执行流程:

  1. Start / 开始: 组件开始执行。
  2. Initialize Component / 初始化组件: 对应构造函数 GH_Ex_Ana_CondBlank()
  3. Register Input Parameters / 注册输入参数: 对应 RegisterInputParams 方法。
  4. Register Output Parameters / 注册输出参数: 对应 RegisterOutputParams 方法。
  5. SolveInstance Method / 解决实例方法: 对应 SolveInstance 方法。
    • Get Worksheet / 获取工作表
    • Get Range / 获取范围
    • Get Color / 获取颜色
    • Get Flip / 获取翻转状态
    • Get Clear / 获取清除状态
    • Get Activate / 获取激活状态
  6. Activate? / 是否激活?: 检查是否应用条件格式。
  7. Clear? / 是否清除?: 如果激活,检查是否需要清除现有条件。
  8. ClearConditions / 清除条件: 如果需要清除,执行 range.ClearConditions()
  9. AddConditionalBlanks / 添加条件格式: 执行 range.AddConditionalBlanks(color, flip)
  10. Set Output / 设置输出: 对应 DA.SetData(0, range)
  11. End / 结束: 组件执行结束。

这个流程图清晰地展示了代码的执行过程,包括主要的决策点和操作步骤。

Description

  1. 构造函数 GH_Ex_Ana_CondBlank()
public GH_Ex_Ana_CondBlank(): base("Conditional Blank", "Blank","Add conditional formatting to a Range based on blank values",Constants.ShortName, Constants.SubAnalysis)
{
}

解释:
这是类的构造函数。它调用基类的构造函数,设置组件的名称、昵称、描述和分类。

  • “Conditional Blank”:组件的全名
  • “Blank”:组件的昵称
  • 描述文本解释了组件的功能
  • Constants.ShortNameConstants.SubAnalysis 可能是定义组件分类的常量
  1. Exposure 属性
public override GH_Exposure Exposure
{get { return GH_Exposure.secondary; }
}

解释:
这个属性定义了组件在 Grasshopper 界面中的显示级别。

  • GH_Exposure.secondary 表示这是一个次要组件,可能在子菜单或高级选项中显示。
  1. RegisterInputParams 方法
protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager)
{base.RegisterInputParams(pManager);pManager[1].Optional = true;pManager.AddColourParameter("Cell Color", "C", "The cell highlight color", GH_ParamAccess.item, Sd.Color.LightGray);pManager[2].Optional = true;pManager.AddBooleanParameter("Flip", "F", "If true, filled cells will be highlighted", GH_ParamAccess.item, false);pManager[3].Optional = true;pManager.AddBooleanParameter("Clear", "_X", "If true, the existing conditions will be cleared", GH_ParamAccess.item, false);pManager[4].Optional = true;pManager.AddBooleanParameter("Activate", "_A", "If true, the condition will be applied", GH_ParamAccess.item, false);pManager[5].Optional = true;
}

解释:
这个方法注册组件的输入参数。

  • 首先调用基类的 RegisterInputParams 方法注册基本参数。
  • 然后添加特定于此组件的参数:
    • 单元格颜色:用于高亮显示的颜色
    • 翻转选项:决定是高亮空白还是非空白单元格
    • 清除选项:是否清除现有条件格式
    • 激活选项:是否应用条件格式
  • 所有新添加的参数都被设置为可选的(Optional = true)
  1. RegisterOutputParams 方法
protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager)
{base.RegisterOutputParams(pManager);
}

解释:
这个方法注册组件的输出参数。在这里,它只是调用基类的方法,没有添加额外的输出参数。

  1. SolveInstance 方法
protected override void SolveInstance(IGH_DataAccess DA)
{// ... (代码略)
}

解释:
这是组件的核心方法,执行实际的操作。

  • 获取输入数据(工作表、范围、颜色、选项等)
  • 根据输入参数应用条件格式
  • 设置输出数据

Key parts explanation (关键部分解释):

if (activate)
{if (clear) range.ClearConditions();range.AddConditionalBlanks(color, flip);
}

If activated, clear existing conditions if required, then add conditional formatting for blank cells.
如果激活,根据需要清除现有条件,然后为空白单元格添加条件格式。

  1. Icon 属性
protected override System.Drawing.Bitmap Icon
{get{return Properties.Resources.BB_Cond_Blank_01;}
}

解释:
这个属性提供组件的图标。它返回一个名为 “BB_Cond_Blank_01” 的资源图像。

  1. ComponentGuid 属性
public override Guid ComponentGuid
{get { return new Guid("f8e03658-c939-4d29-97a9-58d181a38c08"); }
}

解释:
这个属性返回组件的唯一标识符(GUID)。这个 GUID 在组件发布后不应更改,用于在 Grasshopper 中唯一标识此组件。

总结:
这个类实现了一个 Grasshopper 组件,用于在 Excel 工作表中为空白单元格添加条件格式。它展示了如何创建自定义 Grasshopper 组件,包括参数注册、核心逻辑实现、图标设置等。这种组件可以帮助用户更有效地分析和可视化 Excel 数据中的空白值。

Code

using Grasshopper.Kernel;
using Grasshopper.Kernel.Parameters;
using Grasshopper.Kernel.Types;
using Rhino.Geometry;
using System;
using System.Collections.Generic;
using Sd = System.Drawing;namespace Bumblebee.Components
{// 定义一个用于在Excel中为空白单元格添加条件格式的Grasshopper组件public class GH_Ex_Ana_CondBlank : GH_Ex_Rng__Base{/// <summary>/// 初始化 GH_Ex_An_CondBlank 类的新实例。/// </summary>public GH_Ex_Ana_CondBlank(): base("Conditional Blank", "Blank","Add conditional formatting to a Range based on blank values",Constants.ShortName, Constants.SubAnalysis){// 构造函数调用基类构造函数,设置组件名称、昵称、描述和分类}/// <summary>/// 设置组件的曝光级别。/// </summary>public override GH_Exposure Exposure{// 返回次要曝光级别,表示这是一个不太常用的组件get { return GH_Exposure.secondary; }}/// <summary>/// 注册该组件的所有输入参数。/// </summary>protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager){// 调用基类方法注册基本参数base.RegisterInputParams(pManager);pManager[1].Optional = true;// 添加单元格颜色参数pManager.AddColourParameter("Cell Color", "C", "The cell highlight color", GH_ParamAccess.item, Sd.Color.LightGray);pManager[2].Optional = true;// 添加翻转选项参数pManager.AddBooleanParameter("Flip", "F", "If true, filled cells will be highlighted", GH_ParamAccess.item, false);pManager[3].Optional = true;// 添加清除现有条件参数pManager.AddBooleanParameter("Clear", "_X", "If true, the existing conditions will be cleared", GH_ParamAccess.item, false);pManager[4].Optional = true;// 添加激活条件参数pManager.AddBooleanParameter("Activate", "_A", "If true, the condition will be applied", GH_ParamAccess.item, false);pManager[5].Optional = true;}/// <summary>/// 注册该组件的所有输出参数。/// </summary>protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager){// 调用基类方法注册输出参数base.RegisterOutputParams(pManager);}/// <summary>/// 这是实际执行工作的方法。/// </summary>/// <param name="DA">DA对象用于从输入检索数据并存储到输出。</param>protected override void SolveInstance(IGH_DataAccess DA){IGH_Goo gooS = null;DA.GetData(0, ref gooS);ExWorksheet worksheet = new ExWorksheet();bool hasWs = gooS.TryGetWorksheet(ref worksheet);IGH_Goo gooR = null;DA.GetData(1, ref gooR);ExRange range = new ExRange();if (!gooR.TryGetRange(ref range, worksheet)) return;if (!hasWs) worksheet = range.Worksheet;// 获取单元格高亮颜色Sd.Color color = Sd.Color.LightGray;DA.GetData(2, ref color);// 获取翻转选项bool flip = false;DA.GetData(3, ref flip);// 获取清除选项bool clear = false;DA.GetData(4, ref clear);// 获取激活选项bool activate = false;DA.GetData(5, ref activate);// 如果激活,则应用条件格式if (activate){// 如果需要清除,则清除现有条件if (clear) range.ClearConditions();// 添加基于空白值的条件格式range.AddConditionalBlanks(color, flip);}// 设置输出数据DA.SetData(0, range);}/// <summary>/// 提供组件的图标。/// </summary>protected override System.Drawing.Bitmap Icon{get{// 返回组件的图标return Properties.Resources.BB_Cond_Blank_01;}}/// <summary>/// 获取此组件的唯一ID。发布后不要更改此ID。/// </summary>public override Guid ComponentGuid{// 返回组件的唯一标识符get { return new Guid("f8e03658-c939-4d29-97a9-58d181a38c08"); }}}
}

这段代码现在包含了详细的中文注释,解释了每个方法和属性的功能。这些注释涵盖了:

  1. 类的整体功能
  2. 构造函数的作用
  3. 各个方法的用途和工作原理
  4. 输入参数和输出参数的含义
  5. SolveInstance 方法中的主要逻辑步骤
  6. 图标和GUID属性的作用

这篇关于【C#】【EXCEL】BumblebeeComponentsAnalysisGH_Ex_Ana_CondBlank.cs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111310

相关文章

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处

Python Excel 通用筛选函数的实现

《PythonExcel通用筛选函数的实现》本文主要介绍了PythonExcel通用筛选函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录案例目的示例数据假定数据来源是字典优化:通用CSV数据处理函数使用说明使用示例注意事项案例目的第一