C# 在C中获取Excel边框样式#

C# 在C中获取Excel边框样式#,c#,excel,border,C#,Excel,Border,C#中的Excel边框样式是跨堆栈的(这里和任何地方一样多),但我完全找不到任何涉及获取样式值的文档;我发现的每个问题、页面和PDF都只讨论设置 如何以有用的形式从excel边框中获取样式数据?(比如字符串) 我敢肯定,问题在于我是一个绝对的C#新手动态类型让我感到困惑和恐惧(我想念Java),这个问题很可能就围绕着它。我试图从Excel中的范围(范围可能是单元格、行或整个表格)中检索各种样式,并将它们转换为其他形式(出于演示目的,我重写了代码,将HTML样式作为字符串内联编写) Excel.S

C#中的Excel边框样式是跨堆栈的(这里和任何地方一样多),但我完全找不到任何涉及获取样式值的文档;我发现的每个问题、页面和PDF都只讨论设置

如何以有用的形式从excel边框中获取样式数据?(比如字符串)

我敢肯定,问题在于我是一个绝对的C#新手<代码>动态类型让我感到困惑和恐惧(我想念Java),这个问题很可能就围绕着它。我试图从Excel中的范围(范围可能是单元格、行或整个表格)中检索各种样式,并将它们转换为其他形式(出于演示目的,我重写了代码,将HTML样式作为字符串内联编写)

Excel.Style下面的所有内容似乎都是
动态的
类型,我不知道如何使用它。非常迟钝:没有明确的指示颜色属性的成员是什么,或者我希望它返回什么类型的对象

我想这是有意的,这样可以使用甚至返回多种不同颜色类型中的任何一种,但当我只想知道border x中发生了什么时,这并不是立即有用的。。。同样,这很可能是完全错误的方法


谢谢

由于我之前误解了问题,我将根据新的信息完全重做我的答案:

虽然我不理解为什么需要将样式转换为字符串的实际问题,但仍然可以创建多个方法,每个方法都采用
Excel.Border
,然后返回所需的相应
string

用于获取颜色

你可以吃类似的东西

    public static String getBorderColor(Excel.Border border)
    {
        String retval = "";
        retval += " rgb(";
        System.Drawing.Color color = Color.FromArgb((int)border.Color);
        retval += color.R + ",";
        retval += color.G + ",";
        retval += color.B + ")";
        return retval;
    }
用于获取权重,因为所有线条样式和权重样式基本上都是
整数
,因此它们不会按照您的需要转换为
字符串。它们将显示为其指定的
数值
值,因此您必须使用
if语句
switch case
语句并遍历所有样式。。。比如:

    public static String getWeight(Excel.Border border)
    {
        String retval = "weight = ";
        int weight = border.Weight;

        const int xlThick = (int)Excel.XlBorderWeight.xlThick;

        switch (weight)
        {
            case xlThick:
                retval += "thick";
                break;
            //... continue for all border weights
        }

        return retval;

    }

你可以对线条样式等重复这一点。。。希望这对您有所帮助

这似乎没有设置边框样式,只检查它是否等于另一个值(我认为这实际上只是获取样式)。不过,我可能是误读了。你能进一步解释一下吗?也许我不完全理解你所说的
边框样式
的意思,这会让你在
范围内找到边框
你只是在专门寻找边框的颜色吗?我正在尝试得到各种边框样式(颜色、样式、宽度)。例如,如果(在Excel应用程序中)我将单元格边框的颜色设置为全红色,我希望函数返回该单元格的
字符串
:“rgb(255,0,0)”(通过“range”参数传递给函数)。类似地,对于
样式
,我希望能够将单元格的边框设置为虚线(或任何形式),并让我的函数返回字符串“虚线”。抱歉:我刚刚意识到,在我的第一条评论中,我无意中说了“设置边框样式”,而不是“获取边框样式”@SandyGifford我仍然不知道我是否理解你的问题,但我确实更新了我的答案
    public static String getWeight(Excel.Border border)
    {
        String retval = "weight = ";
        int weight = border.Weight;

        const int xlThick = (int)Excel.XlBorderWeight.xlThick;

        switch (weight)
        {
            case xlThick:
                retval += "thick";
                break;
            //... continue for all border weights
        }

        return retval;

    }