加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何使用npoi将图像放在一个单元格中

发布时间:2020-12-16 03:57:47 所属栏目:asp.Net 来源:网络整理
导读:我正在使用 npoi来生成excel文档.我需要向单元格添加图像.使用以下代码,我可以将图像插入到我的文档中.然而,图像跨越许多细胞.我怎样才能确保图像恰好适合一次细胞. public ActionResult NPOICreate(){ try { FileStream fs = new FileStream(Server.MapPath
我正在使用 npoi来生成excel文档.我需要向单元格添加图像.使用以下代码,我可以将图像插入到我的文档中.然而,图像跨越许多细胞.我怎样才能确保图像恰好适合一次细胞.

public ActionResult NPOICreate()
{
    try
    {
        FileStream fs = new FileStream(Server.MapPath(@"ContentNPOITemplate.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,(short)4,2,(short)6,5);
        anchor.AnchorType = 2;
        var picture = patriarch.CreatePicture(anchor,LoadImage(@"D:devWebsite/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");
    }

}

解决方法

据我所知,无法将图像对象分配给Excel中的特定单元格.
这不是POI / NPOI的限制,而是Excel的工作方式:插入电子表格的图片只是浮动(在电子表格网格本身上)……
通过确保细胞和图片的大小和位置完美匹配,最多可以让人相信它在细胞中.图片有一个属性(参见“格式图片”对话框,属性部分,也可以通过POI访问,我确定),它允许指定图片是否会在其周围的行/单元格上的动作后移动和/或调整大小,但最终,图片仍然是一个浮动的物体,与细胞的关系最为松散.

将图片分配给单元格的常见技巧是通过注释.然后,图片更正式地绑定到单元格,但它不显示为内容,而是显示为评论数据.
例如,参见this recipe.想法是使用注释的背景作为具有特殊填充效果的颜色,这是我们希望与单元格关联的图像.在这里,必须有一种方法用NPOI以编程方式实现这一点,但我不能直接肯定这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读