Easypoi模版形式导出excel导出图片

若您正在使用easypoi进行excel导出的话,希望这篇文章能帮到您。

本文主要是使用easypoi通过模版的形式导出图片。

若需要导出多sheet得话,非模版形式,可以参考我的文章EasyPOI->非模版形式导出Excel(多Sheet)

模版形式的多sheet导出可参考:EasyPOI->模版形式导出Excel(多Sheet)

模版导出可参考我的文章Easypoi导出excel

 

POM依赖如下:

        <!-- easypoi -->
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>3.2.0</version>
        </dependency>

导出图片代码如下:

@Controller
@RequestMapping(value = "exportexcel")
public class ExportExcelTest {
    @RequestMapping(value="exportexceltest")
    @ResponseBody
    public String exportExcelTest(HttpServletResponse response){
        // 获取workbook对象
        Workbook workbook = exportPicture() ;
        // 判断数据
        if(workbook == null) {
            return "fail";
        }
        // 设置excel的文件名称
        String excelName = "测试excel" ;
        // 重置响应对象
        response.reset();
        // 当前日期,用于导出文件名称
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String dateStr = "["+excelName+"-"+sdf.format(new Date())+"]";
        // 指定下载的文件名--设置响应头
        response.setHeader("Content-Disposition", "attachment;filename=" +dateStr+".xls");
        response.setContentType("application/vnd.ms-excel;charset=UTF-8");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        // 写出数据输出流到页面
        try {
            OutputStream output = response.getOutputStream();
            BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
            workbook.write(bufferedOutPut);
            bufferedOutPut.flush();
            bufferedOutPut.close();
            output.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "success";
    }

    public Workbook exportPicture() {
        TemplateExportParams params = new TemplateExportParams(
                "d:/项目测试文件夹/easyPoiExportPicture.xlsx", true);
        // 
        Map<String, Object> map = new HashMap<String, Object>();
        // 数据列表
        List<Map<String, Object>> pictureList = new ArrayList<Map<String, Object>>() ;
        // 创建数据对象
        Map<String, Object> temp = new HashMap<String, Object>();
        // 创建图片
        ImageEntity image = new ImageEntity();
        image.setHeight(1000);
        image.setWidth(2500);
        image.setUrl("static/images/fu.jpg");
        // 
        temp.put("name","福字") ;
        temp.put("image", image);
        // 
        pictureList.add(temp);
        // 创建数据对象
        Map<String, Object> temp1 = new HashMap<String, Object>();
        // 创建图片
        ImageEntity image1 = new ImageEntity();
        image1.setHeight(2000);
        image1.setWidth(5000);
        image1.setUrl("static/images/tree.jpg");
        // 
        temp1.put("name","树") ;
        temp1.put("image", image1);
        // 
        pictureList.add(temp1);
        // 
        map.put("i" , pictureList);
        // 
        Workbook book = ExcelExportUtil.exportExcel(params, map);
        // 
        return book ;
    }
}

模版示例:

导出后结果:

注意:图片的宽高需要通过ImageEntity对象的width和height属性指定,且每列图片的宽高需相同。

 

其他相关使用请参考原文章:http://easypoi.mydoc.io/#text_217673

 

 

如您有其他问题,希望可以通过留言得形式及时交流,有书写错误和可优化的地方也希望及时提出,感谢。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
easypoi通过模板导出excel的步骤如下: 1. 准备数据:首先,需要准备好要填充到模板中的数据。可以用一个list中的map来表示每一页的数据。每个map对应着一页文档的数据,而list中的每个元素对应着一页文档。例如,可以创建一个List<Map<String, Object>>来存储数据。 2. 设置模板和参数:然后,需要设置模板路径和参数。可以使用TemplateExportParams类来读取模板,设置sheet名,并且将数据map传入。 3. 导出excel:接下来,使用ExcelExportUtil.exportExcel方法导出excel。该方法接受模板参数和数据参数,并返回一个Workbook对象。 4. 写出excel:最后,将Workbook对象写出到输出流中即可下载。可以通过调用Workbook的write方法将数据写入到response的输出流中。 需要注意的是,导出过程中可能会出现样式问题,比如模板中的单元格合并了,但导出excel并没有合并。这时可以通过手动处理来解决合并单元格的问题。 以上是通过easypoi通过模板导出excel的基本步骤。你可以参考提供的代码示例和使用easypoi的相关文档来具体实现。 [2 [3<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Easypoi使用模板导出文档或excel表格详解](https://blog.csdn.net/qq_44845339/article/details/110537034)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [使用easyPoi根据模板导出excel](https://blog.csdn.net/weixin_44854514/article/details/120311371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值