0

C# の Excel の境界線スタイルは、インターネット全体でよく 調べられています (ここではどこでも Stack 上にあります) が、スタイル値の取得に関するドキュメントをまったく見つけることができませんでした。私が見つけたすべての質問、ページ、および PDF では、設定についてのみ説明しています。

便利な形式で Excel の境界線からスタイル データを取得するにはどうすればよいですか? (言って、ストリング)

問題は、私が絶対的な C# 初心者であるという事実と関係があると確信しています。 Dynamic型は私を混乱させ、怖がらせます (私は Java が恋しいです)。Excel の範囲 (範囲はセル、行、またはテーブル全体) からさまざまなスタイルを取得し、それらを他の形式に変換しようとしています (デモンストレーションのために、コードを書き直して、HTML スタイルをインラインとして弦)。

using Excel = Microsoft.Office.Interop.Excel;

public static String rangeStyle2InlineHTMLStyle(Excel.Range range)
{
    String str = "";
    Excel.Style style = range.Style;

    Excel.Border border_top = style.Borders[Excel.XlBordersIndex.xlEdgeTop];
    Excel.Border border_left = style.Borders[Excel.XlBordersIndex.xlEdgeLeft];
    Excel.Border border_right = style.Borders[Excel.XlBordersIndex.xlEdgeRight];
    Excel.Border border_bottom = style.Borders[Excel.XlBordersIndex.xlEdgeBottom];

    Console.WriteLine(border_top.Color.ToString());

    str += "border-top-color:" + color2CSSRGB(border_top.Color) + "; ";
    str += "border-left-color:" + color2CSSRGB(border_left.Color) + "; ";
    str += "border-right-color:" + color2CSSRGB(border_right.Color) + "; ";
    str += "border-bottom-color:" + color2CSSRGB(border_bottom.Color) + "; ";

    return "style='" + str + "'";
}

public static String color2CSSRGB(Object c)
{
    return "rgb(" + c.R + "," + c.G + "," + c.B + ")";
}

Excel.Style の下にあるものはすべてdynamic型のように見えますが、それを使用する方法がわかりませんMSDN のドキュメントは驚くほどわかりにくいです。Color プロパティのメンバーが何であるか、または返されるオブジェクト タイプの種類が明確に示されていません。

これは意図的なものだと思います。さまざまな色の種類のいずれかを使用して返すこともできますが、境界線 x で何が起こっているのかだけを知りたい場合は、すぐには役に立ちません。これはすべて完全に間違ったアプローチである可能性が高いためです。

ありがとう

4

1 に答える 1