CompletableFuture實現Excel 多個sheet頁批量導出

CompletableFuture實現Excel 多個sheet頁批量導出

文章目錄

  • CompletableFuture實現Excel 多個sheet頁批量導出
      • 為什么不能直接合并文件或Sheet?
      • 我的方案合理性
    • 1. 操作實現步驟
      • 1.1、導入所需要的依賴
      • 1.2 、Excel 導入導出對象
      • 1.3、異步生成 Excel 文件到指定路徑
      • 1.4、合并多個 Excel 文件的 Sheet(保留樣式)
      • 1.5、Excel 導出接口

最近在做多數據導出的時候,需要將數據導出在不同的數據sheet頁中,苦于沒有第三方工具包那能直接處理,于是就自己手寫了一個
注意:我查一系列的操作excel的官網發現EasyExcel、JExcelApi、apachePoi等也沒有“直接合并文件”API。
哪怕是 Apache POI 提供的 Workbook.cloneSheet() 復制當前工作簿內部的 Sheet,但不能跨文件復制。

必須通過代碼遍歷 Sheet、Row、Cell,把內容和樣式挨個復制,才算是“合并”。

為什么不能直接合并文件或Sheet?

  • Excel 文件不是簡單的文本或數據文件,是一個 ZIP 壓縮的多部分復合結構。
  • 每個 Sheet、樣式、字體、圖片等都有自己獨立的 XML 文件和關系映射。
  • 直接“拼接”文件會導致結構錯亂,打不開或出錯。
  • 需要按POI的數據模型逐一復制內容和樣式。

我的方案合理性

  • 我目前用 copySheet 按行復制,是最標準、最穩定的做法。
  • 也可以嘗試擴展,比如復制合并單元格、列寬、數據驗證、圖片等(需要額外代碼),讓合并更

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95034.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95034.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95034.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

搭建本地 Git 服務器

以下是搭建本地 Git 服務器的通用步驟,支持團隊協作或私有倉庫管理:方法 1:基于 SSH 的簡單部署(適合小團隊) 步驟 1:安裝 Git 在服務器上安裝 Git(以 Ubuntu 為例): sud…

【Matplotlib】中文顯示問題

中文顯示問題本地Mac上作圖,可以方便地實現中文字體顯示。比如在Jupter中,通過:方法一:不下載字體庫即可實現中文顯示 (MAC)plt.rcParams[font.family][Arial Unicode MS]方法二:下載指定字體訓即可實現中文顯示plt.rc…

從“單體崩潰”到“穩定如山”:Java 構建高可用、低耦合架構實戰指南

引言: 你是否經歷過這樣的痛苦?某個模塊突然異常,整個系統瞬間崩盤,排查日志堆積如山,客戶投訴不斷。系統耦合嚴重、容錯性差,成了上線最忌憚的“隱雷”。 而今天,我們要帶你深入剖析如何通過事…

人工智能正在學習自我提升的方式

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎?訂閱我們的簡報,深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同,從行業內部的深度分析和實用指南中受益。不要錯過這個機會,成為AI領…

Numpy基礎(廣播機制)

廣播機制 Numpy的Universal functions中要求輸入的數組shape是一致的,當數組的shape不相等 時,則會使用廣播機制。不過,調整數組使得shape一樣,需要滿足一定的規則,否則將 出錯。這些規則可歸納為以下4條。 1&#xff…

reuse: for booting my spring project with mvn in Windows command line

boot.bat echo off setlocal enabledelayedexpansion:: 定義幫助信息 set HELP_MSG使用方法: %0 [選項,可選-m,-j,-h] [參數...]:: 默認啟動方式為 mvn set MODEmvn set ARGS:: 解析命令行參數 :parse_args if "%~1""" goto end_parseif "%~1"&q…

NodeJs學習日志(4):路由合并_環境配置_常用文件目錄

路由合并_環境配置_常用文件目錄 路由合并 // routes/routes.js const express require(express); const router express.Router();// 合并子路由 var indexRouter require(../routes/index); var usersRouter require(../routes/users);router.use(/, indexRouter); route…

?TRAE SOLO + Holopix AI | 輕松實現 “虛假廣告“-轉[特殊字符]割草小游戲

引言 😶 兩周前 (7.21) Trae-國際版 正式發布「SOLO」模式,需要 Pro 賬戶,邀請碼一度 “難求”,海鮮市場還有人掛出 500塊的 “天價”,這都能炒?我是無法理解的🤷?♀?,目前一個月…

redis集群-本地環境

* Linux 本地集群:3主3從yum install -y gccyum install -y wgetyum install -y vimwget http://download.redis.io/releases/redis-7.2.5.tar.gztar -zxvf redis-7.2.5.tar.gzcd redis-7.2.5/makemake PREFIX/usr/local/redis install# 配置系統環境變量vim /etc/p…

海關 瑞數 失信企業 逆向 分析 后綴 rs

聲明: 本文章中所有內容僅供學習交流使用,不用于其他任何目的,抓包內容、敏感網址、數據接口等均已做脫敏處理,嚴禁用于商業用途和非法用途,否則由此產生的一切后果均與作者無關!部分python代碼headers {Accept: appl…

用 Postman 的 Tests 腳本,這行代碼斷言接口返回,自動化測試省一半事

本文聚焦 Postman 的 Tests 腳本在接口自動化測試中的核心作用,闡述如何通過編寫 Tests 腳本實現接口返回的自動斷言,從而大幅提升測試效率。文中詳細介紹了 Tests 腳本的基礎語法、常用斷言方法、實戰案例及優化技巧,涵蓋從簡單響應狀態碼校…

7、西門子PLC基礎術語:數據單位、存儲區域、尋址方式、字節序

一、數據單位(數據長度類型)術語名稱位數所占字節說明Bit位1 bit1/8 Byte最小數據單位(0或1)BByte 字節8 bit1 Byte字節單位WWord 字16 bit2 Byte通常用于整數、狀態字等DWDouble Word 雙字32 bit4 Byte常用于浮點、雙整數 1雙字 …

大型動作模型LAM:讓企業重復任務實現80%效率提升的AI技術架構與實現方案

現代企業運營中,重復性任務的自動化處理已成為提升組織效率的核心需求。從基礎數據錄入到復雜工作流管理,企業持續尋求技術創新來降低人工成本、減少操作錯誤,并將人力資源重新配置到更具價值的戰略性工作中。大型動作模型(Large …

部署Web UI自動化測試平臺:SeleniumFlaskTester

1. Python環境準備 推薦Python3.11,可從https://www.python.org/downloads/release/python-3119/ 下載,見下圖: 安裝后,cmd命令行查看版本:python --version 2. 下載源碼包 從 https://gitee.com/ligaopan/SeleniumFlaskTester…

計算機網絡:到底什么是可變長子網掩碼VLSM?

VLSM 是可變長子網掩碼,對應的是 FLSM(固定長子網掩碼) FLSM 中,子網掩碼是固定的,比如一個 C 類地址用 255.255.255.128(/25)劃分,每個子網只能有 126 臺主機,但如果實際需要的主機數不同,比如有的子網需要 20 臺,有的需要 50 臺,FLSM 會導致地址浪費。所以 VLSM …

太極行業觀察:從傳統技藝到數字化轉型的演變|創客匠人

太極拳作為中華傳統文化的重要組成部分,在全球范圍內具有廣泛影響力。目前全球太極習練者已超過一億人,僅中國大陸就有約千萬固定練習者。每年與太極相關的賽事、培訓、教學、養生旅游等活動,形成了數百億元的市場規模。盡管如此,…

Kafka服務端NIO操作原理解析(二)

Kafka系列文章 基于Kafka2.1解讀Producer原理 基于Kafka2.1解讀Consumer原理 Kafka服務端NIO操作原理解析(一) 文章目錄Kafka系列文章前言一、基本認知二、Acceptor的主體流程2.1 run方法源碼2.2 acceptNewConnections方法源碼2.3 主體邏輯流程示意圖三…

當服務器負載過高時該怎么辦?

當服務器出現負載過高時,要對內存、網絡等硬件設備進行查看,其中CPU是重中之重,對CPU使用率進行查看和了解,確定哪些進程占用了大量CPU資源,如果是某個應用程序進程導致CPU高負載,需分析該程序是否存在算法…

跨境電商增長突圍:多維變局下的戰略重構與技術賦能

在全球化商業浪潮與數字技術迭代的雙重驅動下,跨境電商行業正經歷前所未有的變革。平臺規則的動態調整、市場需求的非線性波動、技術工具的持續革新,共同構成了復雜多變的競爭格局。對于賣家而言,如何在不確定性中錨定增長路徑,已…

軟件運行時 ffmpeg.dll 丟失怎么辦?從原因排查到完美修復的完整方案

在計算機的軟件生態系統中,ffmpeg.dll 扮演著一個至關重要卻又常被普通用戶忽視的角色。這個看似普通的文件,實際上是眾多多媒體相關軟件能夠正常運行的基石之一。當你的視頻剪輯軟件突然無法導入特定格式的視頻,或者心愛的游戲在啟動時彈出令…