Mi tarea es colocar una imagen desde la URL en una celda determinada en la hoja de cálculo de Excel. Estoy usando NetOffice con C# para hacer esto.¿Cómo insertar una imagen en la celda de Excel?
Mi principal problema es que no puedo encontrar una forma de insertar una imagen exactamente en la celda. Cuando uso Sheet.Shapes.AddPicture(), tengo que calcular las coordenadas donde poner mi imagen. Por supuesto, no tengo ningún problema con eso (creé algún tipo de solución), sin embargo, me gustaría preguntar si mi enfoque para resolver este problema es correcto o si hay algún otro método donde pueda insertar una imagen en la celda.
Aquí está mi solución:
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;
}
Hasta donde yo sé, las imágenes no van directamente dentro de las celdas en una hoja de trabajo. Esto se evidencia insertando una imagen en una hoja de cálculo. Observe que está sorta "flota" encima de las celdas, lo mismo con imágenes prediseñadas, formas, etc. –
No puede insertar imágenes en las celdas. Su enfoque de alinearlos con la celda, mediante el uso de las propiedades Superior e Izquierda, etc., es el correcto. –