jxls生成多sheet(解决多sheet页边距问题)

最近公司项目中需要导出excel。因为之前使用过jxls,导出是通过模板,给模板里填充值,模板可以自定义格式,使用起来特别方便。于是决定使用它了。
我使用的是jxls-core-1.0.6.jar。是maven项目。主要说下多sheet页的生成方式,以及填充图片和多sheet页边距解决办法。

总的生成方法如下:

/**
     * 
     *@Title:  export
     *@Description: 
     *@Author: kpg
     *@Since: 2017年6月9日14:56:18
     *@param request
     *@param response
     */
    @RequestMapping("/export")
    public void export(HttpServletRequest request,HttpServletResponse response) throws Exception{  
        request.setCharacterEncoding("UTF-8");
        //获取request里的参数
        String fileName = request.getParameter("title");//导出文件名称
        if(ChineseUtill.isMessyCode(fileName)){
            fileName = new String(fileName.getBytes("ISO8859-1"), "UTF-8");
        }
        String serviceName = request.getParameter("serviceName");//调用数据集合方法
        if(ChineseUtill.isMessyCode(serviceName)){
            serviceName = new String(serviceName.getBytes("ISO8859-1"), "UTF-8");
        }
        String params = request.getParameter("params");//数据集合方法所需参数
        if(ChineseUtill.isMessyCode(params)){
            params = new String(params.getBytes("ISO8859-1"), "UTF-8");
        }
        String tempName = request.getParameter("tempName");//模板名称
        if(ChineseUtill.isMessyCode(tempName)){
            tempName = new String(tempName.getBytes("ISO8859-1"), "UTF-8");
        }
        String attemperNo = request.getParameter("attemperNo");
        if(attemperNo!=null && !attemperNo.equals("") && ChineseUtill.luanma(attemperNo)){
            attemperNo = new String(attemperNo.getBytes("ISO8859-1"), "UTF-8");
        }
    //获
jxls是一个用于处理Excel模板的Java库,支持在模板中定义复杂的逻辑和数据绑定。对于处理包含多个sheet的Excel模板,jxls提供了灵活的方式来实现。以下是使用jxls处理多个sheet的步骤: 1. **创建Excel模板**:在Excel文件中创建多个sheet,并在每个sheet中使用jxls的标签来定义数据绑定和逻辑。 2. **准备数据**:准备需要填充到Excel模板中的数据。可以使用Java对象、集合等数据结构来存储数据。 3. **配置jxls引擎**:使用jxls的配置类来设置模板文件、输出文件和上下文数据。 4. **处理多个sheet**:在jxls的配置中,可以指定每个sheet的数据绑定和逻辑处理。 以下是一个简单的示例代码,展示了如何使用jxls处理包含多个sheet的Excel模板: ```java import org.jxls.common.Context; import org.jxls.util.JxlsHelper; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; public class JxlsMultipleSheetsExample { public static void main(String[] args) throws Exception { // 加载Excel模板 InputStream is = JxlsMultipleSheetsExample.class.getResourceAsStream("template.xlsx"); // 创建输出流 OutputStream os = new FileOutputStream("output.xlsx"); // 创建jxls上下文 Context context = new Context(); // 准备数据 Map<String, Object> data1 = new HashMap<>(); data1.put("name", "Sheet1 Data"); Map<String, Object> data2 = new HashMap<>(); data2.put("name", "Sheet2 Data"); // 将数据添加到上下文 context.putVar("sheet1Data", data1); context.putVar("sheet2Data", data2); // 处理Excel模板 JxlsHelper.getInstance().processTemplate(is, os, context); // 关闭流 is.close(); os.close(); } } ``` 在这个示例中,我们创建了一个`Context`对象,并将不同sheet的数据绑定到上下文中。然后使用`JxlsHelper`来处理模板并生成最终的Excel文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值