使用 Java 在Excel中建立下拉選單

E-iceblue發表於2024-03-04

下拉選單(下拉框)可以確保使用者僅從預先給定的選項中進行選擇,這樣不僅能減少資料輸入錯誤,還能節省時間提高效率。在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

相關文章