Hi All,
After many attempts, i finally found out the solution. Thought of sharing with you guys.
int iImageWidth = 0, iImageHeight = 0, iOffset = 10;
using (Bitmap bitmap = new Bitmap(strImageFile))
{
iImageHeight = bitmap.Height;
iImageWidth = bitmap.Width;
}
// Save the Excel Workbook
workbookPart.Workbook.Save();
SetCellHeightAndWidth(srcWorkSheetPart, GetRowIndex(mergeCellCoordinates[0]), GetCellColIndex(mergeCellCoordinates[0]) + 1, GetRowIndex(mergeCellCoordinates[1]), GetCellColIndex(mergeCellCoordinates[1]) + 1, iImageWidth, iImageHeight, iOffset);
void SetCellHeightAndWidth(WorksheetPart workSheetPart, int startRowIndex, int startColIndex, int endRowIndex, int endColIndex, int iImageWidth, int iImageHeight, int iOffset)
{
List<row> lstRows = workSheetPart.Worksheet.Descendants<row>().Where(r => (r.RowIndex >= (uint)startRowIndex && r.RowIndex <= (uint)endRowIndex)).ToList();
double fCustomColWidth = (float)(((((iImageWidth + (2 * iOffset)) - 12) / 7) + 1) / (endColIndex - startColIndex + 1));
double fCustomRowHeight = ((((float)iImageHeight + (2 * (float)iOffset)) * 72) / (96 * lstRows.Count));
// the order of the columns elment must be after the SheetFormatProperties element
workSheetPart.Worksheet.InsertAfter(GenerateColumnsData((uint)startColIndex, (uint)endColIndex, fCustomColWidth + 0.8), workSheetPart.Worksheet.SheetFormatProperties);
// Set Rows Height
SetRowsReight(lstRows, (uint)startRowIndex, (uint)endRowIndex, fCustomRowHeight);
// Save the Worksheet
workSheetPart.Worksheet.Save();
}
private static Columns GenerateColumnsData(UInt32 StartColumnIndex, UInt32 EndColumnIndex, double ColumnWidth)
{
Columns columns = new Columns();
for (uint index = StartColumnIndex; index <= EndColumnIndex; index++)
{
Column column = new Column();
column.Min = index;
column.Max = index;
column.Width = ColumnWidth;
column.CustomWidth = true;
columns.Append(column);
}
return columns;
}
private void SetRowsReight(List<row> lstRows, UInt32 StartRowIndex, UInt32 EndRowIndex, double RowHeight)
{
foreach (Row row in lstRows)
{
row.Height = RowHeight;
row.CustomHeight = true;
}
}