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

【Easypoi & Apache poi】 Java后端 Word導(dǎo)入與導(dǎo)出

這篇具有很好參考價值的文章主要介紹了【Easypoi & Apache poi】 Java后端 Word導(dǎo)入與導(dǎo)出。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

引入依賴

<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-spring-boot-starter</artifactId>
</dependency>
<!-- 下面的版本需要對應(yīng)上面依賴中的版本 否則可能會起沖突 -->
<!-- 下面的依賴主要是為了使用Apache原生的WordExtractor對doc后綴文件的解析 -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>4.1.1</version>
</dependency>
<!-- 糊涂Api工具 -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-core</artifactId>
    <version>5.8.10</version>
</dependency>

工具類封裝

public class WordDocumentUtil {

    /**
     * 解析文檔文件
     *
     * @param file 文檔文件
     * @return 文檔內(nèi)容
     */
    public static String parseWord(MultipartFile file) {
        String wordTxt = "";
        InputStream stream = null;
        try {
            if (file.getOriginalFilename().endsWith(".doc")) {
                stream = file.getInputStream();
                // Apache Poi
                WordExtractor ex = new WordExtractor(stream);
                wordTxt = ex.getText();
            } else if (file.getOriginalFilename().endsWith(".docx")) {
                stream = file.getInputStream();
                // EasyPoi
                XWPFDocument document = new XWPFDocument(stream);
                XWPFWordExtractor ex = new XWPFWordExtractor(document);
                wordTxt = ex.getText();
            }
        } catch (Exception e) {
            // 此處建議拋出異常 "文檔解析有誤"
            e.printStackTrace();
        } finally {
            if (stream != null) {
                try {
                    stream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return wordTxt;
    }

    /**
     * 判斷文檔類型進行不同的分割方式
     * ".doc"后綴需要以"\r\n"切割 而".docx"后綴需要以"\n"切割
     *
     * @param file 文件名:以file.getOriginalFilename()傳入
     * @param wordTxt 文件內(nèi)容
     * @return 內(nèi)容數(shù)組
     */
    public static String[] judgeType(String file, String wordTxt) {
        boolean suffixFlag = file.endsWith(".doc");

        return suffixFlag ? Arrays.stream(wordTxt.split("\r\n")).toArray(String[]::new)
                : Arrays.stream(wordTxt.split("\n")).toArray(String[]::new);
    }

    /**
     * 導(dǎo)出resources下的word模板表
     *
     * @param fileName 文件名
     * @param response {@link HttpServletResponse}
     */
    public void exportTemplate(String fileName, HttpServletResponse response) {
        InputStream inputStream = null;
        try {
            String path = "/word/" + fileName;
            inputStream = this.getClass().getResourceAsStream(path);

            String newFileName = IdUtil.simpleUUID() + StrUtil.DOT + FileUtil.extName(fileName);

            byte[] bytes = new byte[1024 * 1024];
            // 輸入流讀取文件
            if (inputStream != null) {
                inputStream.read(bytes);
            }

            response.setCharacterEncoding("UTF-8");
            response.setContentType("application/msword");
            response.setHeader("Access-Control-Expose-Headers","Content-disposition");
            response.setHeader("Content-Disposition","attachment;filename=" + newFileName);
            response.getOutputStream().write(bytes);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

亂碼問題

????????如果這里造成了讀取resources下的文件返回前端亂碼問題:除了HttpServletResponse響應(yīng)中設(shè)置字體問題,還有可能是因為在編譯期文件就已經(jīng)亂碼了,所以需要在pom.xml中增加以下配置。文章來源地址http://www.zghlxwxcb.cn/news/detail-676873.html

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <encoding>UTF-8</encoding>
                <nonFilteredFileExtensions>
                    <nonFilteredFileExtension>doc</nonFilteredFileExtension>
                </nonFilteredFileExtensions>
            </configuration>
        </plugin>
    </plugins>
</build>

到了這里,關(guān)于【Easypoi & Apache poi】 Java后端 Word導(dǎo)入與導(dǎo)出的文章就介紹完了。如果您還想了解更多內(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)文章

  • 使用原生POI和EasyPoi根據(jù)word模板導(dǎo)出word工具類

    使用原生POI和EasyPoi根據(jù)word模板導(dǎo)出word工具類

    前兩天接了個需求,要求將數(shù)據(jù)導(dǎo)出成word,里邊有邊個,有其他的東西,怎么說這,這個需求最開始就是上傳word,下載附件就行了,非得改成上傳數(shù)據(jù)然后支持下載word。有股脫褲子放屁的感覺 而且呢,當(dāng)時做的時候前任開發(fā)在數(shù)據(jù)庫存了一個巨大的Json文件,解析也挺費勁的

    2024年01月25日
    瀏覽(19)
  • Java Apache POI 小記(讀取Word通過模板創(chuàng)建PPT)

    近期身邊的一位朋友來尋求幫助,她在日常工作時,總是需要做一些重復(fù)的事情,所以想著是否能通過程序?qū)崿F(xiàn)自動化的操作。 具體需求為,每天會收到一份固定格式的Word文件,然后根據(jù)其中的內(nèi)容,填充到固定的PPT模板中,最終生成圖片輸出。 有了需求后,第一件事自然

    2024年01月19日
    瀏覽(26)
  • easyexcel導(dǎo)出報錯 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader

    easyexcel導(dǎo)出報錯 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader

    報錯: 原因: 這是因為poi依賴不一致導(dǎo)致的,將poi各個依賴換成一直就行 我的是easyexcel 2.2.7版本 對應(yīng)poi三個依賴4.1.2,替換后問題解決

    2024年02月04日
    瀏覽(61)
  • Apache POI 導(dǎo)出Excel報表

    Apache POI 導(dǎo)出Excel報表

    大家好我是蘇麟 , 今天聊聊Apache POI . 介紹 Apache POI 是一個處理Miscrosoft Office各種文件格式的開源項目。簡單來說就是,我們可以使用 POI 在 Java 程序中對Miscrosoft Office各種文件進行讀寫操作。 一般情況下,POI 都是用于操作 Excel 文件。 官網(wǎng) :?Apache POI - the Java API for Microsoft Do

    2024年01月17日
    瀏覽(24)
  • Apache POI 以及 導(dǎo)出Excel表

    Apache POI 是一個處理Miscrosoft Office各種文件格式的開源項目。簡單來說就是,我們可以使用 POI 在 Java 程序中對Miscrosoft Office各種文件進行讀寫操作。 一般情況下,POI 都是用于操作 Excel 文件。 導(dǎo)依賴 將數(shù)據(jù)寫入Excel文件 讀取Excel文件數(shù)據(jù) 學(xué)習(xí)

    2024年02月11日
    瀏覽(24)
  • 《蒼穹外賣》知識梳理P11-Apache POI導(dǎo)出報表

    《蒼穹外賣》知識梳理P11-Apache POI導(dǎo)出報表

    可以通過Apache POI處理excel文件,核心操作是讀和寫 應(yīng)用場景 銀行網(wǎng)銀交易明細(xì) 各種業(yè)務(wù)系統(tǒng)導(dǎo)出Excel報表 批量導(dǎo)入業(yè)務(wù)數(shù)據(jù) 使用步驟 1.導(dǎo)入maven坐標(biāo) 2.測試代碼(寫操作) 3.運行結(jié)果(寫操作) 4.測試代碼(讀操作) 5.運行結(jié)果(讀操作) 由于實際業(yè)務(wù)中可能會有復(fù)雜的報

    2024年02月19日
    瀏覽(21)
  • 使用Apache POI數(shù)據(jù)導(dǎo)出及EasyExcel進行十萬、百萬的數(shù)據(jù)導(dǎo)出

    Apache POI 是基于 Office Open XML 標(biāo)準(zhǔn)( OOXML )和 Microsoft 的 OLE 2 復(fù)合?檔 格式( OLE2 )處理各種?件格式的開源項?。 簡??之,您可以使? Java 讀寫 MS Excel ?件,可以使? Java 讀寫 MS Word 和 MS PowerPoint ?件。 1.HSSF - 提供讀寫 Microsoft Excel XLS 格式 (Microsoft Excel 97 (-2003)) 檔案

    2024年02月15日
    瀏覽(22)
  • Apache poi xwpf word轉(zhuǎn)PDF中文顯示與頁碼問題解決

    目錄 POM依賴 核心配置代碼 PDF下載流問題 WPS模板問題 原問題解決方法:https://github.com/opensagres/xdocreport/issues/161 請記住,word轉(zhuǎn)換如果沒問題,那么就要設(shè)置pdf的字體,這個是鐵律! 將PdfOptions提出來作為方法使用 注意前端PDF文件流空白問題參考以下方案進行處理 js下載PDF文件

    2024年02月07日
    瀏覽(42)
  • 【java】EasyPoi導(dǎo)出導(dǎo)入(合并單元格)
  • Excel 導(dǎo)入導(dǎo)出(前端處理:xslx)(后端處理:hutool+poi || Easy Excel )

    Excel 導(dǎo)入導(dǎo)出(前端處理:xslx)(后端處理:hutool+poi || Easy Excel )

    ? 目錄 Excel 導(dǎo)入導(dǎo)出(前端處理:xslx) 代碼示例 導(dǎo)入Excel數(shù)據(jù) 將數(shù)據(jù)封裝好后傳給后端? 導(dǎo)出數(shù)據(jù) 預(yù)覽(vue-office/excel\\\"……;docx-preview) Excel 導(dǎo)入導(dǎo)出(后端處理:hutool+poi || Easy Excel ) 前端 后端使用Hutool處理Excel 文件 Hutool-poi是針對Apache POI的封裝,因此需要用戶自行引入

    2024年01月24日
    瀏覽(39)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包