java poi導出excel設置下拉選擇框


基本的過程就是設置一個下拉選擇框的校驗,然后綁定到sheet的指定格子上。XSS和HSS的方式有些許不同,但是原理是一樣的。代碼示例如下:

        //性別
        String[] datas = new String[]{"",""};
        if(excelType.equals(ExcelTypeEnum.XLSX)){
            //數據驗證幫助程序
            XSSFDataValidationHelper dvHelper2 = new XSSFDataValidationHelper((XSSFSheet) sheet);
            XSSFDataValidationConstraint dvConstraint2 = (XSSFDataValidationConstraint) dvHelper2.createExplicitListConstraint(datas);
            CellRangeAddressList regions2 =new CellRangeAddressList(1, 5000, 2, 2);
            XSSFDataValidation dataValidation2 =  (XSSFDataValidation) dvHelper2.createValidation( dvConstraint2, regions2);
            sheet.addValidationData(dataValidation2);
        }else{
            //性別
            // 設置第5列的2-5000行為下拉列表
            CellRangeAddressList regions2 = new CellRangeAddressList(1, 5000, 2, 2);
            // 創建下拉列表數據
            DVConstraint constraint2 = DVConstraint.createExplicitListConstraint(datas);
            // 綁定
            HSSFDataValidation dataValidation2 = new HSSFDataValidation(regions2, constraint2);
            sheet.addValidationData(dataValidation2);
        }

------------

完整的一個示例代碼如下。導入包后可以直接運行實驗。

package com.insigma;
import java.io.FileOutputStream;

import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.xssf.usermodel.XSSFDataValidation;
import org.apache.poi.xssf.usermodel.XSSFDataValidationConstraint;
import org.apache.poi.xssf.usermodel.XSSFDataValidationHelper;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelTest {
    public static void main(String[] args) {
        try{
            dropDownList42007("D:\\test.xlsx");
        }catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void dropDownList42007(String filePath)  throws Exception {
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("下拉列表測試");
        String[] datas = new String[] {"",""};
        XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet);
        XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper.createExplicitListConstraint(datas);
        CellRangeAddressList addressList =  new CellRangeAddressList(0, 100, 0, 0);
        XSSFDataValidation validation  = (XSSFDataValidation) dvHelper.createValidation( dvConstraint, addressList);
        sheet.addValidationData(validation);
        FileOutputStream stream = new FileOutputStream(filePath);
        workbook.write(stream);
        stream.close();
    }
}

 

-----------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM