XSSFWorkbook 导出模板下拉菜单设置

package test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.ss.usermodel.DataValidation;
import org.apache.poi.ss.usermodel.DataValidationConstraint;
import org.apache.poi.ss.usermodel.DataValidationHelper;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.xssf.usermodel.XSSFDataValidation;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Demo {
	public static void main(String[] args) throws IOException {
		XSSFWorkbook workbook = new XSSFWorkbook(); 
		XSSFSheet spreadsheet = workbook.createSheet("Sheet Name");
		String[] strs = new String[]{"aa","bb","cc","dd","ee","ff","gg","hh","ii"};
		CellRangeAddressList regions = new CellRangeAddressList(0, 9, 0, 0);  
		DataValidationHelper dataValidationHelper = spreadsheet.getDataValidationHelper();
		DataValidationConstraint createExplicitListConstraint = dataValidationHelper.createExplicitListConstraint(strs);
		DataValidation createValidation = dataValidationHelper.createValidation(createExplicitListConstraint, regions);
	     //处理Excel兼容性问题
        if (createValidation instanceof XSSFDataValidation) {
            createValidation.setSuppressDropDownArrow(true);
            createValidation.setShowErrorBox(true);
        } else {
            createValidation.setSuppressDropDownArrow(false);
        }
        spreadsheet.addValidationData(createValidation);
		FileOutputStream out = new FileOutputStream( new File("D:/Writesheet.xlsx"));
		workbook.write(out);
		out.close();
		
	}
}

最近一个需求要求在导入模板上面添加下拉菜单,找了很多资料都是excel2003版的下拉菜单制作,在这里记录一下2007版的做法

XSSFWorkbook 导出模板下拉菜单设置_第1张图片

转载于:https://my.oschina.net/u/3484671/blog/2873618

你可能感兴趣的:(XSSFWorkbook 导出模板下拉菜单设置)