私の仕事は、Excelのワークシートの特定のセルにURLの画像を置くことです。私はこれを行うためにC#でNetOfficeを使用しています。Excelセルに画像を挿入するには?
私の主な問題は、私は正確にセルに画像を挿入する方法を見つけることができないということです。 Sheet.Shapes.AddPicture()を使用すると、画像を配置する座標を計算する必要があります。もちろん、問題はありませんが(私はいくつかの回避策を作りました)、この問題を解決する私のアプローチが正しいかどうか、または画像をセルに挿入できる他の方法があるかどうかを質問したいと思います。ここで
は私の回避策です:
var floatLeft = FloatLeftPixelsCalculation(rowNumber);
var floatTop = FloatTopPixelsCalculation(rowNumber);
Worksheet.Shapes.AddPicture(urlCellValue, MsoTriState.msoFalse, MsoTriState.msoTrue, floatLeft, floatTop, PictureWidth, PictureHeight);
public float FloatTopPixelsCalculation(int rowNumber)
{
float floatTop = 0;
for (var rNumber = 1; rNumber < rowNumber; rNumber++)
{
var cellHeight = Convert.ToSingle(Worksheet.Cells[rNumber, ColumnIndex].RowHeight);
floatTop = floatTop + cellHeight;
}
return floatTop;
}
public float FloatLeftPixelsCalculation(int rowNumber)
{
float floatLeft = 0;
for (var columnNumber = 1; columnNumber < ColumnIndex; columnNumber++)
{
var cellWidth = Convert.ToSingle(Worksheet.Cells[rowNumber, columnNumber].ColumnWidth);
floatLeft = floatLeft + cellWidth;
}
return floatLeft;
}
私が知る限り、画像はワークシート内のセルの内部に直接入りません。これは、スプレッドシートにイメージを挿入することによって証明されます。セルの上にソート「浮動」があることを示します.-クリップアート、シェイプなどと同じです。 –
セルに写真を挿入することはできません。 TopプロパティとLeftプロパティなどを使用してセルと整列させるアプローチは正しいです。 –