国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

jxls根據(jù)模板導(dǎo)出Excel(二)

這篇具有很好參考價值的文章主要介紹了jxls根據(jù)模板導(dǎo)出Excel(二)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

說明:本文是jxls根據(jù)模板導(dǎo)出Excel直接下載。

使用版本:jxls V2.10.0

excel模板版本:.xlsx格式

jxls官網(wǎng)地址:https://jxls.sourceforge.net/index.html

1、pom引用

 <dependency>
            <groupId>org.jxls</groupId>
            <artifactId>jxls</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>org.jxls</groupId>
            <artifactId>jxls-poi</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>org.jxls</groupId>
            <artifactId>jxls-jexcel</artifactId>
            <version>1.0.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-jexl</artifactId>
            <version>2.1.1</version>
        </dependency>

  2、Controller調(diào)用方法

@PostMapping("/export")
    public AjaxResult export(HttpServletResponse response, Data data) throws IOException {
        String fileName = "test.xlsx";
        Map<String, Object> model  = dataService.getExportData(data,fileName);//拼接需要導(dǎo)出的內(nèi)容
        response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
        return JxlsUtils.exportExcelWithOS(response.getOutputStream(),fileName, model);
    }

  3、拼接數(shù)據(jù)

public Map<String, Object> getExportData(Data data,String fileName) {
        Map<String, Object> model = new HashMap<String, Object>(); // 綁定數(shù)據(jù)
        try {
            //可綁定單個參數(shù),Excel模板中單元格直接用${test1}獲取
            model.put("test1", "ttt");
			
            //可綁定list,使用${item.參數(shù)名}獲取,需在列表首個單元格中增加批注
            List<Data1> taskItems = new ArrayList<Data1>();//Data1為某個數(shù)據(jù)類 
            for (int i=0;i<5;i++) {
			    Data1 d=new Data1;
				//d.setA("111");
                taskItems.add(d);
            }

            model.put("taskItems", taskItems);

        }catch (Exception ex){
            logger.error(ex.getMessage());
            System.out.println(ex.getMessage());
        }
        return model;
    }

  4、Excel導(dǎo)出方法

import org.apache.commons.jexl3.JexlBuilder;
import org.apache.commons.jexl3.JexlEngine;
import org.jxls.builder.xls.XlsCommentAreaBuilder;
import org.jxls.common.Context;
import org.jxls.expression.JexlExpressionEvaluator;
import org.jxls.transform.Transformer;
import org.jxls.transform.poi.PoiTransformer;
import org.jxls.util.JxlsHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.*;
import java.util.HashMap;
import java.util.Map;


public class JxlsUtils {
    static{
       
    }

    /**
     * 根據(jù)模板生成文件,直接下載
     * @param os 流數(shù)據(jù)
     * @param templateFileName 模板文件名稱
     * @param model 填充數(shù)據(jù)
     * @throws IOException
     */
    public static AjaxResult exportExcelWithOS(OutputStream os , String templateFileName, Map<String, Object> model) throws IOException{
        // 獲取模板文件
        InputStream is = new FileInputStream(new File(模板文件路徑地址 + templateFileName));
        try {
            // 輸出
            Context context = PoiTransformer.createInitialContext();
            if (model != null) {
                for (String key : model.keySet()) {
                    context.putVar(key, model.get(key));
                }
            }
            JxlsHelper.getInstance().setUseFastFormulaProcessor(false).setEvaluateFormulas(true).processTemplate(is, os, context);
        }
        catch (Exception ex){
            System.out.println(ex.getMessage());
            logger.error(ex.getMessage());
            return AjaxResult.error(ex.getMessage());
        }finally {
            is.close();
        }
        return AjaxResult.success();
    }
}

  5、Excel模板,創(chuàng)建xlsx格式模板

添加批注,第一個單元格添加范圍批注,jx:area(lastCell="K3")

list列表增加jx:each(items="taskItems" var="item" lastCell="K3")

jxls根據(jù)模板導(dǎo)出Excel(二)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-492159.html

之前寫過另一種方法,先根據(jù)模板生成Excel,然后調(diào)用方法導(dǎo)出,可參考:https://www.cnblogs.com/webttt/p/14283481.html

?

到了這里,關(guān)于jxls根據(jù)模板導(dǎo)出Excel(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java中使用JXLS工具類導(dǎo)出復(fù)雜Excel表格

    Java中使用JXLS工具類導(dǎo)出復(fù)雜Excel表格

    前言 ? ?在項目開發(fā)中,我們會遇到各種文件導(dǎo)出的開發(fā)場景,但是這種情況并都不常用,于是本人將自己工作中所用的代碼封裝成工具類,旨在記錄工具類使用方法和技術(shù)分享。 一、Jxls的簡介 ? ?Jxls是一個簡單的、輕量級的excel導(dǎo)出庫,使用特定的標記在excel模板文件中來

    2024年02月03日
    瀏覽(23)
  • java根據(jù)模板導(dǎo)出word

    java根據(jù)模板導(dǎo)出word

    日常開發(fā)中,常常會遇到各種各樣的表格進行導(dǎo)出,比較好的辦法就是提前弄好word模版,再通過遍歷的方式進行導(dǎo)出文檔 模版編寫 內(nèi)容替換 目標下面模版進行多頁展示 將word轉(zhuǎn)換成xml 將xml格式化 再將xml改成ftl xml格式化地址 list找到起始位置和結(jié)束位置 起始位置插入#list

    2024年02月15日
    瀏覽(29)
  • Poi實現(xiàn)根據(jù)word模板導(dǎo)出-圖表篇

    Poi實現(xiàn)根據(jù)word模板導(dǎo)出-圖表篇

    往期系列傳送門: Poi實現(xiàn)根據(jù)word模板導(dǎo)出-文本段落篇 (需要完整代碼的直接看最后位置?。。。?前言: 補充Word中圖表的知識: 每個圖表在word中都有一個內(nèi)置的Excel,用于操作數(shù)據(jù)。 內(nèi)置Excel有類別、系列、值三個概念: poi可以獲取word中的圖表對象,通過這個圖表對象來

    2024年02月02日
    瀏覽(37)
  • java 導(dǎo)出word,java根據(jù)提供word模板導(dǎo)出word文檔

    java 導(dǎo)出word,java根據(jù)提供word模板導(dǎo)出word文檔

    本文主要講解,利用poi-tl在word中動態(tài)生成表格行,進行文字、圖片填充。一共提供了兩種方式,1.基于本地文件 2.基于網(wǎng)絡(luò)文件 本文講解思路,1.先看示例,2. 示例對應(yīng)的代碼展示 3. 基本概念講解(api自行查閱文檔)。 這樣便于快速展示,不符合你的業(yè)務(wù)需求的可以直接劃走

    2024年02月14日
    瀏覽(23)
  • Android 基于POI庫,根據(jù)模板導(dǎo)出word文檔

    Android 基于POI庫,根據(jù)模板導(dǎo)出word文檔

    由于項目需求,需要根據(jù)用戶提供的word模板,填充動態(tài)內(nèi)容生成新的word,為了記錄自己的踩坑日記,記錄一下。 Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程序?qū)ξ臋n讀和寫的功能。 這里給出官網(wǎng)鏈接-POI官網(wǎng),同時下載版本也在官網(wǎng)鏈接中,可

    2024年01月18日
    瀏覽(23)
  • ExcelExportUtil基于模板導(dǎo)出excel&POI導(dǎo)出excel

    第一步,導(dǎo)入依賴沒啥好說的; 第二步,查詢數(shù)據(jù)庫或es數(shù)據(jù)組裝成list對象; 第三步,填充MapString, Object excelMap = new HashMap(); 數(shù)據(jù)key和excel模板對應(yīng),如果一次導(dǎo)出多個,可以用index區(qū)分; 第一步,導(dǎo)入依賴 第二步,上圖哈哈 就是這么簡單 沒了

    2024年02月12日
    瀏覽(21)
  • Java導(dǎo)出Excel模板,導(dǎo)出數(shù)據(jù)到指定模板,通過模板導(dǎo)入數(shù)據(jù)(一)

    Java導(dǎo)出Excel模板,導(dǎo)出數(shù)據(jù)到指定模板,通過模板導(dǎo)入數(shù)據(jù)(一)

    本文章主要是介紹阿里巴巴的easyexcel的使用 1. 首先需要我們導(dǎo)入easyexcel的依賴包 2. 前期工作準備 編寫相關(guān)導(dǎo)出模板和導(dǎo)入模板。在項目的resources下創(chuàng)建文件夾,命名為excel 導(dǎo)出模板(此處僅做示例,字段根據(jù)自己項目來): ?導(dǎo)入模板(導(dǎo)入時需要哪些字段根據(jù)自己項目業(yè)

    2024年02月03日
    瀏覽(30)
  • <Java導(dǎo)出Excel> 1.0 Java實現(xiàn)Excel動態(tài)模板導(dǎo)出

    <Java導(dǎo)出Excel> 1.0 Java實現(xiàn)Excel動態(tài)模板導(dǎo)出

    思路: 1,先創(chuàng)建動態(tài)模板(必須要在數(shù)據(jù)庫建一張表,可隨時修改模板) 例如: 建表語句: 模板中的字段腳本: 2,編寫一個查詢接口:返回一個List map 注意:order by id 根據(jù)表中字段:id排序的作用是控制導(dǎo)出的EXCEL表中字段列的順序; mapper.xml層: mapper接口層: serviceIm

    2024年02月12日
    瀏覽(19)
  • 【Go】excelize庫實現(xiàn)excel導(dǎo)入導(dǎo)出封裝(三),基于excel模板導(dǎo)出excel

    【Go】excelize庫實現(xiàn)excel導(dǎo)入導(dǎo)出封裝(三),基于excel模板導(dǎo)出excel

    大家好,這里是符華~ 關(guān)于excelize庫實現(xiàn)excel導(dǎo)入導(dǎo)出封裝,我已經(jīng)寫了兩篇了,我想要的功能基本已經(jīng)實現(xiàn)了,現(xiàn)在還差一個模板導(dǎo)出,這篇文章就來講講如何實現(xiàn)用模板導(dǎo)出excel。 前兩篇: 【Go】excelize庫實現(xiàn)excel導(dǎo)入導(dǎo)出封裝(一),自定義導(dǎo)出樣式、隔行背景色、自適應(yīng)

    2024年01月25日
    瀏覽(64)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包