欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現讀取html文本內容并按照格式導出到excel中

 更新時間:2024年02月03日 11:16:52   作者:醬學編程  
這篇文章主要為大家詳細介紹了如何使用Java實現讀取html文本提取相應內容按照格式導出到excel中,文中的示例代碼講解詳細,需要的可以參考下

最近在做一個需求,需要將html文本中的內容提取出來,然后導出到excel里面,實現交代情景,html文本中存在許多標簽,且很亂,因此需要之間將標簽里面的文本提取出來,再進行處理。

            ............
        String text = Jsoup.parse(content).wholeText();
        // 解析字符串并將數據添加到表格
        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) {
        //對每一行數據進行處理,插入到Sheet中
               ............
                row = sheet.createRow(rowNum++);
                // 創(chuàng)建新行并填充數據
                row.createCell(0).setCellValue(entry[0].trim());
                row.createCell(1).setCellValue(entry[1].trim());
        }

        // 導出Excel
             ............ 
    }

1.利用Jsoup解析HTML文檔

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.3</version> <!-- 版本號可能需要根據實際情況調整 -->
</dependency>

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

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

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

2.wholeText(): 一旦解析為Document對象,然后調用wholeText()方法。這個方法用于獲取整個文檔的純文本內容,即去除HTML標簽后的文本信息。

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

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

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.0</version> <!-- 版本號可能需要根據實際情況調整 -->
</dependency>

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

Workbook 類:

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

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

Sheet 類:

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

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

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

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

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

4.導出excel

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

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

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

代碼解析:

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

通過 setContentType 方法設置響應的內容類型。在這里,設置為 application/octet-stream,表示二進制流數據。這個 MIME 類型通常用于下載文件,因為它指示瀏覽器應該處理響應的數據作為二進制流而不是嘗試解析它。

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

通過 setHeader 方法設置響應頭的屬性。在這里,設置了 Content-Disposition 屬性。

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

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

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

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

workbook.close();

關閉 Workbook 對象,釋放資源。

httpServletResponse.flushBuffer();

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

以上就是Java實現讀取html文本內容并按照格式導出到excel中的詳細內容,更多關于Java讀取html文本內容的資料請關注腳本之家其它相關文章!

相關文章

  • Java中的注解、元注解詳細解析

    Java中的注解、元注解詳細解析

    這篇文章主要介紹了Java中的注解、元注解詳細解析,注解也叫元數據,與類、接口、枚舉是在同一個層次,它可以聲明在包、類、字段、方法、局部變量、方法參數等的前面,用來對這些元素進行說明,注釋,需要的朋友可以參考下
    2023-11-11
  • Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine(推薦)

    Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine(推薦)

    這篇文章主要介紹了Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 如何用java計算兩個時間相差多少小時

    如何用java計算兩個時間相差多少小時

    最近工作中遇到需要計算時間差,下面這篇文章主要給大家介紹了關于如何用java計算兩個時間相差多少小時的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Mybatis中的@Param及動態(tài)SQL詳解

    Mybatis中的@Param及動態(tài)SQL詳解

    這篇文章主要介紹了Mybatis中的@Param及動態(tài)SQL詳解,@Param是MyBatis所提供的作為Dao層的注解,作用是用于傳遞參數,從而可以與SQL中的的字段名相對應,需要的朋友可以參考下
    2023-10-10
  • java基于poi導出excel透視表代碼實例

    java基于poi導出excel透視表代碼實例

    這篇文章主要介紹了java基于poi導出excel透視表代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • java 非常好用的反射框架Reflections介紹

    java 非常好用的反射框架Reflections介紹

    這篇文章主要介紹了java 反射框架Reflections的使用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 基于java中的PO VO DAO BO POJO(詳解)

    基于java中的PO VO DAO BO POJO(詳解)

    下面小編就為大家?guī)硪黄趈ava中的PO VO DAO BO POJO(詳解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • SpringBoot中的ImportSelector類動態(tài)加載bean詳解

    SpringBoot中的ImportSelector類動態(tài)加載bean詳解

    這篇文章主要介紹了SpringBoot中的ImportSelector類動態(tài)加載bean詳解,ImportSelector接口是spring中導入外部配置的核心接口,根據給定的條件(通常是一個或多個注釋屬性)判定要導入那個配置類,在spring自動化配置和@EnableXXX中都有它的存在,需要的朋友可以參考下
    2024-01-01
  • SpringBoot中Redis的緩存更新策略詳解

    SpringBoot中Redis的緩存更新策略詳解

    這篇文章主要介紹了SpringBoot中Redis的緩存更新策略,緩存一般是為了應對高并發(fā)場景、緩解數據庫讀寫壓力,而將數據存儲在讀寫更快的某種存儲介質中(如內存),以加快讀取數據的速度,需要的朋友可以參考下
    2023-08-08
  • Servlet中文亂碼問題解決方案解析

    Servlet中文亂碼問題解決方案解析

    這篇文章主要介紹了Servlet中文亂碼問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03

最新評論