Spring Boot實現將Word中的表格轉換成Excel表格?

2024年04月11日21:15:55 科技 1337

Spring Boot實現將Word中的表格轉換成Excel表格? - 天天要聞

你可以使用Apache POI庫來處理Word和Excel文件。在Spring Boot應用中,你可以使用POI來讀取Word中的表格內容,然後創建一個新的Excel文件並將表格內容寫入其中。

引入依賴

首先,你需要在你的Spring Boot項目中添加Apache POI的依賴。在你的pom.xml文件中添加以下依賴

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.1</version>
</dependency>

創建轉換服務

接下來,創建一個Spring Boot的服務類來實現Word轉Excel的功能:

@Service
public class WordToExcelService {

    public void convertWordToExcel(String wordFilePath, String excelFilePath) throws IOException, InvalidFormatException {
        FileInputStream fis = new FileInputStream(wordFilePath);
        XWPFDocument document = new XWPFDocument(fis);

        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

        int rowNum = 0;

        for (XWPFTable table : document.getTables()) {
            for (int i = 0; i < table.getRows().size(); i++) {
                Row row = sheet.createRow(rowNum++);
                for (int j = 0; j < table.getRow(i).getTableCells().size(); j++) {
                    String cellValue = table.getRow(i).getCell(j).getText();
                    Cell cell = row.createCell(j);
                    cell.setCellValue(cellValue);
                }
            }
        }

        FileOutputStream fos = new FileOutputStream(excelFilePath);
        workbook.write(fos);

        fis.close();
        fos.close();
        workbook.close();
        document.close();
    }
}

編寫Controller類

然後,創建一個Controller類來接收請求,並調用WordToExcelService來執行Word轉Excel的操作。

@RestController
public class WordToExcelController {

    @Autowired
    private WordToExcelService wordToExcelService;

    @PostMapping("/convert")
    public ResponseEntity<String> convertWordToExcel(@RequestParam("wordFilePath") String wordFilePath,
                                                     @RequestParam("excelFilePath") String excelFilePath) {
        try {
            wordToExcelService.convertWordToExcel(wordFilePath, excelFilePath);
            return ResponseEntity.ok("Word轉Excel轉換成功!");
        } catch (IOException | InvalidFormatException e) {
            e.printStackTrace();
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("轉換失敗:" + e.getMessage());
        }
    }
}

總結

到這裡,啟動項目,發送一個POST請求到/convert路徑,同時提供Word文件的路徑wordFilePath和Excel文件的路徑excelFilePath時,它將會執行Word轉Excel的操作。可以在Spring Boot應用中調用這個介面來實現你的需求。當然在實際使用的場景中,需要注意適當處理異常情況,比如文件路徑錯誤、文件不存在等。來保證你的程序的健壯性。

科技分類資訊推薦

阿里巴巴,重磅發布! - 天天要聞

阿里巴巴,重磅發布!

【導讀】阿里巴巴集團發布2025財年第四季度及全年財報 中國基金報記者 曹雯璟 5月15日晚間,阿里巴巴集團發布2025財年第四季度及全年財報。過去一個財年,阿里以AI為驅動力,加速自我刷新,取得顯著成效。季度內,淘天全面超預期,阿里雲收入增長加速至18%。阿里雲全財年收入突破雙位數增長。面向未來,以AI+云為核心的科技...
火箭火出圈!原生流量820萬!無特效×真轟鳴=27秒甘肅國傳視頻全球刷屏 - 天天要聞

火箭火出圈!原生流量820萬!無特效×真轟鳴=27秒甘肅國傳視頻全球刷屏

不加特效,無需解說——甘肅國傳平台一條27秒的航天火箭發射視頻,在海外社交平台瘋狂刷屏,原生流量爆破820萬! 4月24日17時17分,搭載神舟二十號載人飛船的長征二號F遙二十運載火箭在酒泉衛星發射中心點火發射。由甘肅省委宣傳部聯合中國日報網運維的海外社交平台賬號「這裡是甘肅」(This is Gansu)發布神二十發射升空...
遼寧科技大學與鞍鋼集團共建現代冶金產業學院 打造鋼鐵人才培育新高地 - 天天要聞

遼寧科技大學與鞍鋼集團共建現代冶金產業學院 打造鋼鐵人才培育新高地

在東北振興戰略深入推進之際,遼寧科技大學與鞍鋼集團共建的鞍山鋼鐵現代冶金產業學院通過「雙元育人」模式,構建起覆蓋全產業鏈的工程人才培養體系。該學院近日獲批省級現代產業學院,其「2+1+1」工程教育模式使2025屆畢業生就業率達94%,其中26人已簽約鞍鋼集團。 校企雙方七十餘年產學研合作基礎,推動產業學院實現從單...
劉強東打了一場漂亮的回歸仗 - 天天要聞

劉強東打了一場漂亮的回歸仗

京東剛剛遞交的2025年第一季度財報,徹底粉碎了市場上關於京東做外賣是主營業務不行的傳言。在創始人劉強東的親自掌舵下,那個戰鬥力爆表的京東又回來了。
vivo V50 Elite版本面向海外發布 採用12GB+512GB - 天天要聞

vivo V50 Elite版本面向海外發布 採用12GB+512GB

【CNMO科技消息】vivo近日正式在印度市場推出vivo V50 Elite Edition,這次版本不僅包含手機,還包括一副vivo TWS 3e真無線耳機。此前,vivo V50 在印度首發時的售價為40999盧比(256GB 版本)
最高省 3000 !小米618大促正式啟動 - 天天要聞

最高省 3000 !小米618大促正式啟動

5 月 13 日,小米啟動 2025 年 618 大促活動。今年的活動主題是「科技生態,一步到位」,這是小米「人車家全生態」戰略開展以來,首次年中大促活動與國補活動並行。小米618大促,推出 13 億超值讓利,眾多先進科技好物福利,疊加國補優惠至高可省 3000 元。13 億超值讓利,爆款旗艦都有特惠今年的小米 618 活動周期,共分為...