EasyExcel 自適應列寬、隱藏列、動態列、單元格下拉框選擇數據、單元格文本格式

前言

項目中用到EasyExcel讀寫Excel,用到了一下功能,這里做個筆記:

  1. 列寬自適應:自適應寬度
  2. 隱藏列:隱藏某些列
  3. 動態列:固定列 + 動態的生成Excel列
  4. 單元格下拉框選擇數據:設計單元格下拉數據,并且加校驗
  5. 單元格文本格式:設置文本格式

EasyExcel 版本:3.0.x

EasyExcel官方文檔

核心代碼實現

  • 列寬自適應: 注冊一個EasyExcel內置的寬度策略對象即可
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
  • 動態列:這里使用的 List 集合
List<List<String>> heads = new ArrayList<>();
List<String> head0 = new ArrayList<>();
// 固定列
head0.add("ID");
heads.add(head0);
List<String> head1 = new ArrayList<>();
head1.add("Name");
heads.add(head1);
// 動態列
for (xxx) {List<String> dnys = new ArrayList<>();dnys.add("Colxx");heads.add(.);
}
List<String> end = new ArrayList<>();
end.add("End");
heads.add(end);// 設置列
EasyExcel.write(out).head(heads)
  • 單元格下拉框選擇數據:注冊一個SheetWriteHandler接口實現類 afterSheetCreate 方法,這里使用匿名內部類。
.registerWriteHandler(new SheetWriteHandler() {@Overridepublic void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {Sheet sheet = writeSheetHolder.getSheet();DataValidationHelper helper = sheet.getDataValidationHelper();// 設置下拉列表單元格的位置首行 末行 首列 末列CellRangeAddressList rangeList = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);// 設置下拉列表的值:strArr 為字符串數組,下拉框的值DataValidationConstraint constraint = helper.createExplicitListConstraint(strArr);// 設置錯誤提示DataValidation validation = helper.createValidation(constraint, rangeList);// 非下拉選項的值不能輸入validation.setErrorStyle(DataValidation.ErrorStyle.STOP);validation.setSuppressDropDownArrow(true);validation.setShowErrorBox(true);validation.createErrorBox("提示", "請選擇/輸入下拉選項中的值");sheet.addValidationData(validation);}}
)
  • 單元格隱藏、單元格文本格式:注冊一個CellWriteHandler,覆蓋afterCellDispose方法,這里使用匿名類
.registerWriteHandler(new CellWriteHandler() {@Overridepublic void afterCellDispose(CellWriteHandlerContext context) {// 設置隱藏列context.getWriteSheetHolder().getSheet().setColumnHidden(0, true);for (WriteCellData<?> writeCellData : context.getCellDataList()) {// 設置文本格式DataFormatData dataFormatData = new DataFormatData();dataFormatData.setIndex((short) 49);writeCellData.getOrCreateStyle().setDataFormatData(dataFormatData);}}
})

最后指定sheet名稱,寫入數據即可。

.sheet("導入").doWrite(datas)

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

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

相關文章

深搜,LeetCode 2368. 受限條件下可到達節點的數目

一、題目 1、題目描述 現有一棵由 n 個節點組成的無向樹&#xff0c;節點編號從 0 到 n - 1 &#xff0c;共有 n - 1 條邊。 給你一個二維整數數組 edges &#xff0c;長度為 n - 1 &#xff0c;其中 edges[i] [ai, bi] 表示樹中節點 ai 和 bi 之間存在一條邊。另給你一個整數…

WPF的DataGrid設置標題頭

要設置DataGrid標題頭的分割線、背景色和前景色等屬性&#xff0c;您可以使用DataGrid的樣式和模板來自定義標題頭的外觀。下面是詳細解釋以及示例代碼&#xff1a; 分割線設置&#xff1a; 您可以使用DataGrid.ColumnHeaderStyle樣式中的BorderThickness和BorderBrush屬性來設…

Java基礎-java開發入門

(創作不易&#xff0c;感謝有你&#xff0c;你的支持&#xff0c;就是我前行的最大動力&#xff0c;如果看完對你有幫助&#xff0c;請留下您的足跡&#xff09; 目錄 一、什么是Java 二、Java語言的特點 三、什么是JDK 四、第一個Java程序 一、什么是Java Java是由Sun …

electron nsis 安裝包 window下任務欄無法正常固定與取消固定

問題 win10系統下&#xff0c;程序任務欄在固定后取消固定&#xff0c;展示的程序內容異常。 排查 1.通過論壇查詢&#xff0c;應該是與app的api setAppUserModelId 相關 https://github.com/electron/electron/issues/3303 2.electron-builder腳本 electron-builder…

二月打戲最燃的國漫推薦,斗羅大陸2上榜,吞噬星空堪稱第一

2024年開年&#xff0c;國漫就給我們帶來了很大的驚喜&#xff0c;在剛剛過去的2月&#xff0c;有幾部中出現了超燃的打戲&#xff0c;看得人熱血沸騰。尤其是科幻番《吞噬星空》中的一場1V1對決&#xff0c;特效和設計都堪稱第一。還有哪些國漫上榜呢&#xff1f;下面就一起來…

TCP為什么要三次握手?

TCP三次握手協議是為了在不可靠的互聯網環境中可靠地建立起一個連接&#xff0c;三次握手可以確保兩端的發送和接收能力都是正常的。 那么&#xff0c;為什么是三次而不是二次或四次握手呢&#xff1f; 為什么不是二次握手&#xff1f; 如果是二次握手&#xff0c;即客戶端發…

網絡編程 io_uring

io_uring 1、概述 io_uring是Linux&#xff08;內核版本在5.1以后&#xff09;在2019年加入到內核中的一種新型的異步I/O模型&#xff1b; io_uring使用共享內存&#xff0c;解決高IOPS場景中的用戶態和內核態的切換過程&#xff0c;減少系統調用&#xff1b;用戶可以直接向…

vue + cesium初始化地圖 + 鼠標經過地圖(點、線等其他實體)樣式

vue cesium初始化地圖 鼠標經過地圖&#xff08;點、線等其他實體&#xff09;樣式 export function initMap(mapViewer) {Cesium.Ion.defaultAccessToken "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0OTUzOGJhMy1iNzVjLTQwZjItYWYyNy03YjA4MjM0YWE2MWMiLCJpZ…

Unity(第二十二部)官方的反向動力學一般使用商城的IK插件,這個用的不多

反向動力學&#xff08;Inverse Kinematic&#xff0c;簡稱IK&#xff09;是一種通過子節點帶動父節點運動的方法。 正向動力學 在骨骼動畫中&#xff0c;大多數動畫是通過將骨架中的關節角度旋轉到預定值來生成的&#xff0c;子關節的位置根據父關節的旋轉而改變&#xff0c;這…

編寫腳本一鍵安裝rsyslog

腳本分解 環境檢測部分 檢查操作系統 #!/bin/bash# 檢查是否為 Debian 類型 if [ -f /etc/debian_version ]; thenecho "當前操作系統是 Debian 類型"SYSLOG_SERVICE"rsyslog"INSTALL_COMMAND"apt-get install -y"CONFIG_FILE"/etc/rsys…

Vmware esxi虛擬主機狀態無效,無法注銷重啟等操作修復解決

問題 裝有ESXI系統的服務器在強制關機啟動后&#xff0c;顯示虛擬機狀態是無效的&#xff0c;并且無法進行任何操作。 解決辦法 對出問題的虛擬機重新注冊 1、開啟esxi系統的ssh功能 2、取消注冊出問題的虛擬機 找到問題的虛擬機 [rootlocalhost:~] vim-cmd vmsvc/getal…

燒腦問題解決辦法:如何選擇一款合適自己的手機流量卡

現在社會人們越來越離不開手機了&#xff0c;手機給我們生活帶來了翻天覆地的變化&#xff0c;手機需要最多的就是流量了&#xff0c;所以選擇一款合適自己的手機流量卡就顯得尤為重要了&#xff0c;今天小編就給大家來分享一下我的經驗&#xff0c;希望對大家能有幫助&#xf…

python基礎-基本數據類型深入-2.1

目錄 元組 什么是元組&#xff08;tuple&#xff09; 元組練習-1 元組的基本操作 元組常用內建函數 列表和元組的區別與總結 元組練習-2 元組練習-3 元組 什么是元組&#xff08;tuple&#xff09; 與列表&#xff08;list&#xff09;一樣&#xff0c;元組&#xff0…

【Web安全靶場】sqli-labs-master 54-65 Challenges 與62關二分法和like模糊搜索

sqli-labs-master 54-65 Challenges 其他關卡和靶場見專欄… 文章目錄 sqli-labs-master 54-65 Challenges第五十四關-聯合注入第五十五關-聯合注入第五十六關-聯合注入第五十七關-聯合注入第五十八關-報錯注入第五十九關-報錯注入第六十關-報錯注入第六十一關-報錯注入第六十…

grid的刪除

/u01/11.2.0/grid 為 grid 用戶的安裝主目錄 1、刪除 crs 配置信息 root: cd /u01/11.2.0/grid/crs/install perl rootcrs.pl -deconfig -force 2、刪除 crs 配置信息&#xff0c;并卸載軟件 cd /u01/11.2.0/grid/deinstall ./deinstall grid user: ./deinstall -home /…

Mysql與StarRocks語法上的不同

&#x1f413; 序言 StarRocks 是新一代極速全場景 MPP (Massively Parallel Processing) 數據庫。StarRocks 的愿景是能夠讓用戶的數據分析變得更加簡單和敏捷。用戶無需經過復雜的預處理&#xff0c;可以用StarRocks 來支持多種數據分析場景的極速分析。 &#x1f413; 語法…

嵌入式驅動學習第一周——linux的休眠與喚醒

前言 本文介紹進程的休眠與喚醒。 嵌入式驅動學習專欄將詳細記錄博主學習驅動的詳細過程&#xff0c;未來預計四個月將高強度更新本專欄&#xff0c;喜歡的可以關注本博主并訂閱本專欄&#xff0c;一起討論一起學習。現在關注就是老粉啦&#xff01; 行文目錄 前言1. 阻塞和非阻…

第二節 數學知識補充

一、線性代數 向量的 L 2 L_2 L2?范數&#xff08;Euclidean范數/Frobenius范數&#xff09;&矩陣的元素形式范數 向量的 L 2 L_2 L2?范數&#xff1a; ∣ ∣ x ∣ ∣ 2 ( ∣ x 1 ∣ 2 ? ∣ x m ∣ 2 ) 1 2 ||x||_2(|x_1|^2\cdots|x_m|^2)^{\frac12} ∣∣x∣∣2?(∣…

Verilog參數、Verilog參數和屬性沖突、整數處理

Verilog參數 Verilog參數執行以下操作&#xff1a; ?允許您創建易于重用和擴展的參數化代碼。 ?使代碼更可讀、更緊湊、更易于維護。 ?將此類功能描述為&#xff1a; ○ 總線尺寸 ○ 建模設計單元中某些重復元素的數量 ?是常數。對于參數化模塊的每個實例化&#xf…

電腦桌面便簽哪個好,好用的電腦桌面便簽推薦

在如今信息爆炸的時代&#xff0c;人們的工作和生活節奏越來越快&#xff0c;記事和備忘變得尤為重要。而電腦桌面便簽作為一種方便快捷的記錄工具&#xff0c;備受廣大用戶青睞。那么&#xff0c;電腦桌面便簽哪個好&#xff0c;哪個更加出色呢&#xff1f; 作為一名人事專員…