私の仕事は、URLからの写真をExcelワークシートの特定のセルに入れることです。これを行うために C# で NetOffice を使用しています。
私の主な問題は、写真をセルに正確に挿入する方法が見つからないことです。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;
}