最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)讀取html文本內(nèi)容并按照格式導(dǎo)出到excel中

 更新時(shí)間:2024年02月03日 11:16:52   作者:醬學(xué)編程  
這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)讀取html文本提取相應(yīng)內(nèi)容按照格式導(dǎo)出到excel中,文中的示例代碼講解詳細(xì),需要的可以參考下

最近在做一個(gè)需求,需要將html文本中的內(nèi)容提取出來(lái),然后導(dǎo)出到excel里面,實(shí)現(xiàn)交代情景,html文本中存在許多標(biāo)簽,且很亂,因此需要之間將標(biāo)簽里面的文本提取出來(lái),再進(jìn)行處理。

            ............
        String text = Jsoup.parse(content).wholeText();
        // 解析字符串并將數(shù)據(jù)添加到表格
        String[] dataArray = text.split("\n");
        // 創(chuàng)建Excel工作簿和工作表
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet");

        int rowNum = 0;
        Row row = null;

        for (String data : dataArray) {
        //對(duì)每一行數(shù)據(jù)進(jìn)行處理,插入到Sheet中
               ............
                row = sheet.createRow(rowNum++);
                // 創(chuàng)建新行并填充數(shù)據(jù)
                row.createCell(0).setCellValue(entry[0].trim());
                row.createCell(1).setCellValue(entry[1].trim());
        }

        // 導(dǎo)出Excel
             ............ 
    }

1.利用Jsoup解析HTML文檔

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.3</version> <!-- 版本號(hào)可能需要根據(jù)實(shí)際情況調(diào)整 -->
</dependency>

Jsoup(發(fā)音為 “jay-soup”)是一款用于解析HTML文檔、從HTML中提取數(shù)據(jù)和操作HTML的Java庫(kù)。它提供了簡(jiǎn)單而直觀的API,使得在Java中處理HTML變得非常容易。

Jsoup.parse(content).wholeText(); 這行代碼是使用Jsoup庫(kù)解析HTML內(nèi)容并提取其中的純文本信息。

1.Jsoup.parse(content): 這部分代碼使用Jsoup的parse方法,將傳入的content字符串解析為一個(gè)Jsoup的Document對(duì)象。Document對(duì)象表示整個(gè)HTML文檔。

2.wholeText(): 一旦解析為Document對(duì)象,然后調(diào)用wholeText()方法。這個(gè)方法用于獲取整個(gè)文檔的純文本內(nèi)容,即去除HTML標(biāo)簽后的文本信息。

解析出來(lái)的文檔里面包含了 /n 等轉(zhuǎn)義字符,可用于后續(xù)的字符處理

2.使用 Apache POI 庫(kù)創(chuàng)建Excel 文檔

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.0</version> <!-- 版本號(hào)可能需要根據(jù)實(shí)際情況調(diào)整 -->
</dependency>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.0</version> <!-- 版本號(hào)可能需要根據(jù)實(shí)際情況調(diào)整 -->
</dependency>
   // 創(chuàng)建Excel工作簿和工作表
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet");

Workbook 類:

Workbook 是 Apache POI 中表示 Excel 工作簿(Workbook)的接口。

在這里,通過(guò) new XSSFWorkbook() 創(chuàng)建了一個(gè) XSSFWorkbook 對(duì)象,XSSFWorkbook 是 Workbook 接口的一個(gè)實(shí)現(xiàn),用于處理基于 XML 格式的 .xlsx 文件(Excel 2007及以上版本)。

Sheet 類:

Sheet 是 Workbook 中的一個(gè)接口,表示 Excel 工作簿中的一個(gè)表單或工作表。

通過(guò) workbook.createSheet(“Sheet”) 創(chuàng)建了一個(gè)名為 “Sheet” 的工作表。可以通過(guò)不同的工作表名稱創(chuàng)建多個(gè)工作表,每個(gè)工作表包含一組行和列,用于組織和存儲(chǔ)數(shù)據(jù)。

這段代碼創(chuàng)建了一個(gè)空的 Excel 工作簿,其中包含一個(gè)名為 “Sheet” 的工作表。一旦創(chuàng)建了工作簿和工作表,你可以通過(guò) Apache POI 提供的 API 向工作表中添加數(shù)據(jù)、設(shè)置格式、創(chuàng)建圖表等。這樣你就能夠使用 Java 編程來(lái)生成、修改和操作 Excel 文檔。

3.按照一定規(guī)則插入表格數(shù)據(jù)

    row = sheet.createRow(rowNum++);
    // 創(chuàng)建新行并填充數(shù)據(jù)
    row.createCell(0).setCellValue(entry[0].trim());
    row.createCell(1).setCellValue(entry[1].trim());

4.導(dǎo)出excel

 /**
     * 將 Workbook 導(dǎo)出到 HttpServletResponse 輸出流
     *
     * @param workbook Excel Workbook 對(duì)象
     * @param fileName 導(dǎo)出文件名
     */
    public void exportToResponse(Workbook workbook, String fileName) {
        try {
            // 設(shè)置響應(yīng)頭
            httpServletResponse.setContentType("application/octet-stream");
            httpServletResponse.setHeader("Content-Disposition", "attachment; filename=" + fileName);

            // 將 Workbook 寫入 HttpServletResponse 的輸出流
            workbook.write(httpServletResponse.getOutputStream());
            workbook.close();

            // 刷新響應(yīng)
            httpServletResponse.flushBuffer();
        } catch (IOException e) {
            // 處理異常
            log.error("導(dǎo)出文件{}失敗", fileName);
            throw new BusinessException(BusinessError.EXPORT_FILE_FAIL);
        }
    }

代碼解析:

httpServletResponse.setContentType(“application/octet-stream”);:

通過(guò) setContentType 方法設(shè)置響應(yīng)的內(nèi)容類型。在這里,設(shè)置為 application/octet-stream,表示二進(jìn)制流數(shù)據(jù)。這個(gè) MIME 類型通常用于下載文件,因?yàn)樗甘緸g覽器應(yīng)該處理響應(yīng)的數(shù)據(jù)作為二進(jìn)制流而不是嘗試解析它。

httpServletResponse.setHeader(“Content-Disposition”, “attachment; filename=” + fileName);:

通過(guò) setHeader 方法設(shè)置響應(yīng)頭的屬性。在這里,設(shè)置了 Content-Disposition 屬性。

Content-Disposition 屬性指示瀏覽器如何處理響應(yīng)體。在這個(gè)上下文中,attachment 表示要將響應(yīng)作為附件下載,而不是直接在瀏覽器中打開(kāi)。filename 參數(shù)用于指定下載的文件名。

filename= 后面的部分是具體的文件名,通常是服務(wù)器上的文件名或者用戶在下載時(shí)看到的文件名。

workbook.write(httpServletResponse.getOutputStream());:

使用 Excel Workbook 對(duì)象的 write 方法將 Workbook 寫入 HttpServletResponse 的輸出流。這樣,Excel 數(shù)據(jù)就會(huì)以二進(jìn)制流的形式發(fā)送到客戶端。

workbook.close();

關(guān)閉 Workbook 對(duì)象,釋放資源。

httpServletResponse.flushBuffer();

刷新響應(yīng)的緩沖區(qū),確保所有的數(shù)據(jù)都被寫入到輸出流。

以上就是Java實(shí)現(xiàn)讀取html文本內(nèi)容并按照格式導(dǎo)出到excel中的詳細(xì)內(nèi)容,更多關(guān)于Java讀取html文本內(nèi)容的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • jmeter中json提取器如何提取多個(gè)參數(shù)值

    jmeter中json提取器如何提取多個(gè)參數(shù)值

    關(guān)于jmeter中的正則表達(dá)式及json提取器可以提取響應(yīng)值,但是實(shí)際可以需要上個(gè)接口的多個(gè)響應(yīng)值,本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下
    2021-11-11
  • SpringBoot整合MongoDB實(shí)現(xiàn)事務(wù)管理

    SpringBoot整合MongoDB實(shí)現(xiàn)事務(wù)管理

    Spring Boot是一種快速開(kāi)發(fā)Spring應(yīng)用的方式,它提供了大量的自動(dòng)配置和默認(rèn)設(shè)置,以簡(jiǎn)化開(kāi)發(fā)流程,MongoDB是一個(gè)基于文檔的NoSQL數(shù)據(jù)庫(kù),本文將介紹如何在Spring Boot應(yīng)用中整合MongoDB,并實(shí)現(xiàn)事務(wù)管理,需要的朋友可以參考下
    2024-07-07
  • Mybatis-Plus 多表聯(lián)查分頁(yè)的實(shí)現(xiàn)代碼

    Mybatis-Plus 多表聯(lián)查分頁(yè)的實(shí)現(xiàn)代碼

    本篇文章主要介紹了Mybatis-Plus 多表聯(lián)查分頁(yè)的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 查看vscode中JDK版本的兩個(gè)簡(jiǎn)單方法小結(jié)

    查看vscode中JDK版本的兩個(gè)簡(jiǎn)單方法小結(jié)

    這篇文章主要介紹了查看vscode中JDK版本的兩個(gè)簡(jiǎn)單方法,分別是通過(guò)命令面板或資源管理器Explorer來(lái)查找和設(shè)置JDK版本,包括具體步驟和操作說(shuō)明,需要的朋友可以參考下
    2025-05-05
  • java并發(fā)編程專題(二)----如何創(chuàng)建并運(yùn)行java線程

    java并發(fā)編程專題(二)----如何創(chuàng)建并運(yùn)行java線程

    這篇文章主要介紹了java并發(fā)編程如何創(chuàng)建并運(yùn)行java線程,文中講解非常詳細(xì),示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • RestTemplate 401 獲取錯(cuò)誤信息的處理方案

    RestTemplate 401 獲取錯(cuò)誤信息的處理方案

    這篇文章主要介紹了RestTemplate 401 獲取錯(cuò)誤信息的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • spring-boot 如何實(shí)現(xiàn)單次執(zhí)行程序

    spring-boot 如何實(shí)現(xiàn)單次執(zhí)行程序

    這篇文章主要介紹了spring-boot 實(shí)現(xiàn)單次執(zhí)行程序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java Map 按照Value排序的實(shí)現(xiàn)方法

    Java Map 按照Value排序的實(shí)現(xiàn)方法

    Map是鍵值對(duì)的集合接口,它的實(shí)現(xiàn)類主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。這篇文章主要介紹了Java Map 按照Value排序的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2016-08-08
  • Spring?Boot項(xiàng)目?jī)?yōu)雅上線之日志、監(jiān)控、異常處理最佳實(shí)踐指南

    Spring?Boot項(xiàng)目?jī)?yōu)雅上線之日志、監(jiān)控、異常處理最佳實(shí)踐指南

    要讓Spring Boot項(xiàng)目?jī)?yōu)雅、穩(wěn)健地上線并持續(xù)高效運(yùn)行,日志、監(jiān)控、異常處理就是那不可或缺的 儀表盤、導(dǎo)航和故障預(yù)警系統(tǒng),是我們必須重視的關(guān)鍵環(huán)節(jié),這篇文章主要介紹了Spring?Boot項(xiàng)目?jī)?yōu)雅上線之日志、監(jiān)控、異常處理最佳實(shí)踐指南的相關(guān)資料,需要的朋友可以參考下
    2026-05-05
  • mapstruct中的@Mapper注解的基本用法

    mapstruct中的@Mapper注解的基本用法

    在MapStruct中,@Mapper注解是核心注解之一,用于標(biāo)記一個(gè)接口或抽象類為MapStruct的映射器(Mapper),本文給大家介紹mapstruct中的@Mapper注解的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2025-06-06

最新評(píng)論

南平市| 潮州市| 拉萨市| 含山县| 白玉县| 韩城市| 格尔木市| 靖西县| 搜索| 乌兰县| 奉贤区| 伊春市| 赤城县| 五家渠市| 酒泉市| 湖州市| 密山市| 汤原县| 图们市| 和田县| 鱼台县| 岱山县| 山阳县| 尼玛县| 南通市| 贵阳市| 通海县| 同江市| 怀集县| 宜黄县| 剑阁县| 奈曼旗| 凌云县| 银川市| 河南省| 东台市| 赫章县| 六安市| 旺苍县| 沧州市| 美姑县|