【Aspose.Cell】チャートに使用するカラーの変更

以下のサイトを参考にチャート作成をしています。

グラフ線のカラー変更について、ARGB形式で指定できるサンプルコードがほしいです。
CellColor クラスを使用すればよろしいでしょうか?

@kenable811
CellsColorクラスを使用して、必要なargb値を設定した後、CellsColor.Color属性からカラーオブジェクトを取得することができます。次のサンプルコードを参照してください。

CellsColor cellsColor = workbook.CreateCellsColor();
//set argb value
cellsColor.Argb = 0;
//get Color object
Color color = cellsColor.Color;
1 Like

@John.He
hex形式でのカラー指定は可能でしょうか。
rgbへの変換等が必要であれば、そのサンプルもご提示いただけますか?

また、動作環境がLinux上となる為、
Color color = cellsColor.Color;は使用できないですが、代替処理はありますか?
(System.Drawingクラスがサポートされていない為)

@kenable811
Aspose.CellsはLinuxシステム上のグラフィックライブラリ依存アイテムとしてSkiaSharpのみを選択します。SkiaSharpはを実現したSystem.Drawingのすべての機能。Linuxでのインストールについては、以下のドキュメントを参照してください。

hex値をargb値に変換するには、次のコードを参照してください。

public int ConvertFromHexToARGBValue(string hexColor)
{
    // remove prefix '#'
    hexColor = hexColor.TrimStart('#');

    // Ensure that the length of the color code is 8 (with transparency) or 6 (without transparency)
    if (hexColor.Length != 8 && hexColor.Length != 6)
        throw new ArgumentException("Invalid hex color code length.");

    int a = 0;
    int startIndex = 0;
    if (hexColor.Length == 8)
    { 
        a = int.Parse(hexColor.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
        startIndex = 2;
    }
    // Obtain values for red, green, and blue
    int r = int.Parse(hexColor.Substring(startIndex, 2), System.Globalization.NumberStyles.HexNumber);
    startIndex += 2;
    int g = int.Parse(hexColor.Substring(startIndex, 2), System.Globalization.NumberStyles.HexNumber);
    startIndex += 2;
    int b = int.Parse(hexColor.Substring(startIndex, 2), System.Globalization.NumberStyles.HexNumber);

    return (a << 24 | r << 16 | g << 8 | b);
            
}
1 Like

@kenable811

System.Drawing.Common は Linux ではサポートされていませんが、System.Drawing.Color は .Net5 ~ .Net8 にまだ存在しており、Windows と Linux の両方で正常に動作します。

それでも問題が解決しない場合は、問題をより適切に分析するために実行可能なサンプル プロジェクトを共有してください。