Это возможно в три этапа. Во-первых, вы должны вставить изображение. Во-вторых, добавить ClientAnchor к файлу, чтобы разместить изображение в некоторых ячейках. В-третьих, изменить размер изображения хитрым способом, иначе трудно создать изображение внутри ячейки.
ользуюnpoi для создания документов Excel. У меня есть требование добавить изображения в ячейки. Используя следующий код, я могу вставить изображения в свой документ. Однако изображение охватывает много ячеек. Как я могу гарантировать, что изображение просто помещается внутри одной ячейки.
public ActionResult NPOICreate()
{
try
{
FileStream fs = new FileStream(Server.MapPath(@"\Content\NPOITemplate.xls"), FileMode.Open, FileAccess.ReadWrite);
HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true);
var sheet = templateWorkbook.GetSheet("Sheet1");
var patriarch = sheet.CreateDrawingPatriarch();
HSSFClientAnchor anchor;
anchor = new HSSFClientAnchor(0, 0, 0, 0, (short)4, 2, (short)6, 5);
anchor.AnchorType = 2;
var picture = patriarch.CreatePicture(anchor, LoadImage(@"D:\dev\Website/HumpbackWhale.jpg", templateWorkbook));
picture.Resize();
picture.LineStyle = HSSFPicture.LINESTYLE_DASHDOTGEL;
sheet.ForceFormulaRecalculation = true;
MemoryStream ms = new MemoryStream();
templateWorkbook.Write(ms);
TempData["Message"] = "Excel report created successfully!";
return File(ms.ToArray(), "application/vnd.ms-excel", "NPOINewFile.xls");
}
catch (Exception ex)
{
TempData["Message"] = "Oops! Something went wrong.";
return RedirectToAction("NPOI");
}
}