JAVA通过poi实现excel表格制作并且将图片放入到指定的单元格中(可以循环插入)

这篇博客展示了如何利用Java的POI库来制作Excel表格,并详细说明了如何将图片插入到指定的单元格中,包括提供了一段RESTful API的代码示例和操作流程。提醒读者,示例代码可能需要根据实际需求进行调整。
摘要由CSDN通过智能技术生成

废话不多说,直接上代码,上效果图
@RestController
@Api(tags = “报表”)
@RequestMapping("/export")
@CrossOrigin
public class exportContriller {
//图片上传地址
@Value("${queryurl}")
private String queryurl;
private int indexExport = 0;
private int indexExportCell = 0;
private Map<String, Object> mapWork;
//图片上传地址文件夹
private static final String pathUr=null;
private List<Map<String, Object>> listMap;

@ApiOperation("查询文件详情套用模板,返回base64字符")
@GetMapping("/officeModel")
@ApiImplicitParams({

})
public void officeModel(HttpServletResponse response, String workId) {
    try {
        //查询隐蔽工程信息
        mapWork = ContUtil.getHiddenWorkById(workId, queryurl);
        //查询该隐蔽工程下面的图片信息
        listMap = ContUtil.getPictureByWorkId(workId, queryurl);
        //查询项目、合同
        Map<String, Object> mapProj = new HashMap<>();
        if (mapWork.get("contId").toString() != null && !StringUtil.isEmpty(mapWork.get("contId").toString())) {
            mapProj = ContUtil.getContrctNameBytId(mapWork.get("contId").toString(), queryurl);
        } else {
            return;
        }

        // 解析成excel结构体
        XSSFWorkbook workbook = new XSSFWorkbook();
        //生成一个表格,设置表格名称
        XSSFSheet sheet = workbook.createSheet("隐蔽工程及工序流程影像");
        //设置表格列宽度
        sheet.setDefaultColumnWidth(100);
        // 字体样式
        XSSFFont xssfFont = workbook.createFont();
        // 加粗
        xssfFont.setBold(true);
        // 字体名称
        xssfFont.setFontName("楷体");
        // 字体大小
        xssfFont.setFontHeight(12);
        // 表头样式
        XSSFCellStyle headStyle = workbook.createCellStyle();
        // 设置字体css
        headStyle.setFont(xssfFont);
        // 竖向居中
        headStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        // 横向居中
        headStyle.setAlignment(HorizontalAlignment.CENTER);
        // 边框
        headStyle.setBorderBottom(BorderStyle.THIN);
        headStyle.setBorderLeft(BorderStyle.THIN);
        headStyle.setBorderRight(BorderStyle.THIN);
        headStyle.setBorderTop(BorderStyle.THIN);

        // 内容字体样式
        XSSFFont contFont = workbook.createFont();
        // 加粗
        contFont.setBold(false);
        // 字体名称
        contFont.setFontName("楷体");
        // 字体大小
        contFont.setFontHeight(11);
        // 内容样式
        XSSFCellStyle contentStyle = workbook.createCellStyle();
        // 设置字体css
        contentStyle.setFont(contFont);
        // 竖向居中
        contentStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        // 横向居中
        //contentStyle.setAlignment(HorizontalAlignment.CENTER);
        // 边框
        contentStyle.setBorderBottom(BorderStyle.THIN);
        contentStyle.setBorderLeft(BorderStyle.THIN);
        contentStyle.setBorderRight(BorderStyle.THIN);
        contentStyle.setBorderTop(BorderStyle.THIN);

        // 自动换行
        contentStyle.setWrapText(true);

        // 数字样式
        XSSFCellStyle numStyle = workbook.createCellStyle();
        // 设置字体css
        numStyle.setFont(contFont);
        // 竖向居中
        numStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        // 横向居中
 
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值