以下のサイトを参考にチャート作成をしています。
グラフ線のカラー変更について、ARGB形式で指定できるサンプルコードがほしいです。
CellColor クラスを使用すればよろしいでしょうか?
以下のサイトを参考にチャート作成をしています。
グラフ線のカラー変更について、ARGB形式で指定できるサンプルコードがほしいです。
CellColor クラスを使用すればよろしいでしょうか?
@kenable811
CellsColorクラスを使用して、必要なargb値を設定した後、CellsColor.Color属性からカラーオブジェクトを取得することができます。次のサンプルコードを参照してください。
CellsColor cellsColor = workbook.CreateCellsColor();
//set argb value
cellsColor.Argb = 0;
//get Color object
Color color = cellsColor.Color;
@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);
}
System.Drawing.Common は Linux ではサポートされていませんが、System.Drawing.Color は .Net5 ~ .Net8 にまだ存在しており、Windows と Linux の両方で正常に動作します。
それでも問題が解決しない場合は、問題をより適切に分析するために実行可能なサンプル プロジェクトを共有してください。