使用 Java 在Excel中創建下拉列表

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章