下拉選單(下拉框)可以確保使用者僅從預先給定的選項中進行選擇,這樣不僅能減少資料輸入錯誤,還能節省時間提高效率。在MS Excel中,我們可以透過 “資料驗證” 提供的選項來建立下拉選單,但如果要在Java程式中透過程式碼實現這一功能,可能需要藉助一些第三方庫。本文將分享兩種使用免費Java庫在Excel中建立下拉選單的方法。
操作Excel的免費Java控制元件:Free Spire.XLS for Java. (下載後手動引入jar包或者透過Maven倉庫安裝均可)
方法一:基於字串陣列中的值來建立Excel下拉選單
該方法是透過 Free Spire.XLS for Java 提供的 IDataValidation 介面下的 setValue() 方法先定義一個字串陣列作為列表項,然後再透過將 isSuppressDropDownArrow() 方法的引數設定為false 來應用下拉箭頭。
該方法就等同於在Excel “資料驗證” 選項中的 “來源” 中直接輸入一串內容作為列表項。
Java程式碼:
import com.spire.xls.*; import java.awt.*; public class ExcelDropdownList { public static void main(String[] args) { //建立Workbook物件 Workbook workbook = new Workbook(); //獲取第一張工作表 Worksheet sheet = workbook.getWorksheets().get(0); //在指定單元格中新增文字 sheet.getCellRange("B2").setValue("職員"); sheet.getCellRange("B3").setValue("張三"); sheet.getCellRange("C2").setValue("部門"); //設定字型和單元格樣式 sheet.getCellRange("B2:C2").getStyle().getFont().isBold(true); sheet.getCellRange("B2:C2").getStyle().getFont().setColor(Color.BLUE); sheet.getCellRange("B2:C3").getStyle().getFont().setSize(11); sheet.getCellRange("B2:C3").setRowHeight(18); sheet.getCellRange("B2:C3").setColumnWidth(12); //設定下拉選單的值 sheet.getCellRange("C3").getDataValidation().setValues(new String[]{"財務部", "採購部", "銷售部", "行政部"}); //在指定單元格中建立下拉選單 sheet.getCellRange("C3").getDataValidation().isSuppressDropDownArrow(false); //儲存結果檔案 workbook.saveToFile("Excel下拉選單.xlsx", ExcelVersion.Version2013); } }
方法二:基於單元格區域的內容來建立Excel下拉選單
該方法是透過 Validation 類的 setDataRange() 方法指定一個單元格區域中的內容作為下拉選單的資料來源。該方法更加靈活,建立後如果你想更新下拉選單的選項,直接更新單元格中的資料即可。效果如圖:
Java程式碼:
import com.spire.xls.*; import java.awt.*; public class DropdownList { public static void main(String[] args) { //建立Workbook物件 Workbook workbook = new Workbook(); //獲取第一張工作表 Worksheet sheet = workbook.getWorksheets().get(0); //在指定單元格中新增文字 sheet.getCellRange("B2").setValue("職員"); sheet.getCellRange("B3").setValue("張三"); sheet.getCellRange("C2").setValue("部門"); sheet.getCellRange("A11").setValue("財務部"); sheet.getCellRange("A12").setValue("採購部"); sheet.getCellRange("A13").setValue("銷售部"); sheet.getCellRange("A14").setValue("行政部"); //設定字型和單元格樣式 sheet.getCellRange("B2:C2").getStyle().getFont().isBold(true); sheet.getCellRange("B2:C2").getStyle().getFont().setColor(Color.BLUE); sheet.getCellRange("B2:C3").getStyle().getFont().setSize(11); sheet.getCellRange("B2:C3").setRowHeight(18); sheet.getCellRange("B2:C3").setColumnWidth(12); //將指定的單元格區域的內容作為資料來源來建立下拉選單 sheet.getCellRange("C3:C4").getDataValidation().setDataRange(sheet.getCellRange("A11:A14")); //儲存結果檔案 workbook.saveToFile("Excel下拉選單2.xlsx", ExcelVersion.Version2013); } }
免費Free Spire.XLS for Java庫支援多種Excel操作功能,但同時也存在一些限制。
點選瞭解更多功能:https://www.e-iceblue.cn/spirexlsforjava/spire-xls-for-java-program-guide-content.html