1. 使用POI3.2.jar创建的提示框不支持中文,最终我换成了POI3.5.jar就能支持中文了.
2. DVConstraint constraint = DVConstraint.createCustomFormulaConstraint("B1");这样写有点问题,提示字段中可输入的值只能输入B1的内容.
这一句的意思是设置约束条件引用B1单元格中的内容,查找API后发现必须要有一个约束才行,我的灵活处理的方法是设置为BB1,一般不会有这么多字段,BB1没有约束就相当于创建了一个没有约束的单元格.
本为是对上一篇博客的中内容的封装,封装后的方法使用起来更方便一些.
效果图:
[java] view plaincopyprint?
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFDataValidation;
- import org.apache.poi.hssf.usermodel.DVConstraint;
- import org.apache.poi.hssf.util.CellRangeAddressList;
- import java.io.IOException;
- import java.io.FileOutputStream;
- public class PoiTest2 {
- public static void main(String[] args) throws IOException {
- HSSFWorkbook wb = new HSSFWorkbook();// excel文件对象
- HSSFSheet sheetlist = wb.createSheet("sheetlist");// 工作表对象
- FileOutputStream out = new FileOutputStream("d:\\success.xls");
- String[] textlist = { "列表1", "列表2", "列表3", "列表4", "列表5" };
- sheetlist = setHSSFValidation(sheetlist, textlist, 0, 500, 0, 0);// 第一列的前501行都设置为选择列表形式.
- sheetlist = setHSSFPrompt(sheetlist, "promt Title", "prompt Content",0, 500, 1, 1);// 第二列的前501行都设置提示.
- wb.write(out);
- out.close();
- }
- /**
- * 设置某些列的值只能输入预制的数据,显示下拉框.
- * @param sheet 要设置的sheet.
- * @param textlist 下拉框显示的内容
- * @param firstRow 开始行
- * @param endRow 结束行
- * @param firstCol 开始列
- * @param endCol 结束列
- * @return 设置好的sheet.
- */
- public static HSSFSheet setHSSFValidation(HSSFSheet sheet,
- String[] textlist, int firstRow, int endRow, int firstCol,
- int endCol) {
- // 加载下拉列表内容
- DVConstraint constraint = DVConstraint.createExplicitListConstraint(textlist);
- // 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列
- CellRangeAddressList regions = new CellRangeAddressList(firstRow,endRow, firstCol, endCol);
- // 数据有效性对象
- HSSFDataValidation data_validation_list = new HSSFDataValidation(regions, constraint);
- sheet.addValidationData(data_validation_list);
- return sheet;
- }
- /**
- * 设置单元格上提示
- * @param sheet 要设置的sheet.
- * @param promptTitle 标题
- * @param promptContent 内容
- * @param firstRow 开始行
- * @param endRow 结束行
- * @param firstCol 开始列
- * @param endCol 结束列
- * @return 设置好的sheet.
- */
- public static HSSFSheet setHSSFPrompt(HSSFSheet sheet, String promptTitle,
- String promptContent, int firstRow, int endRow ,int firstCol,int endCol) {
- // 构造constraint对象
- DVConstraint constraint = DVConstraint.createCustomFormulaConstraint("BB1");
- // 四个参数分别是:起始行、终止行、起始列、终止列
- CellRangeAddressList regions = new CellRangeAddressList(firstRow,endRow,firstCol, endCol);
- // 数据有效性对象
- HSSFDataValidation data_validation_view = new HSSFDataValidation(regions,constraint);
- data_validation_view.createPromptBox(promptTitle, promptContent);
- sheet.addValidationData(data_validation_view);
- return sheet;
- }
- }
相关推荐
poi获取合并单元格,Java 对excel 文档处理。
poi读取合并单元格帮助类
java excel poi合并单元格
java使用poi在excel单元格添加超链接,设置字体颜色(csdn)————程序
poi获取exccel有合并单元格的数据,存入List
java POI导出Excel文件多表头文件
POI操作Excel 合并单元格 边框问题解决方法,这个方法是我亲自测试,并运用于项目中的,可以放心使用,还一并写出了很多注释,其中有写poi的bug的解决方法
比较全面的POI操作手册,并附上完整的例子。
POI设置EXCEL单元格格式为文本.pdf
POI中设置Excel单元格格式
POI excel单元格顔色设定
Java POI下载Excel模板 Excel带有下拉框的模板,并有详细注释,生成exlcel的下拉框,必填项标红,数字栏位防止科学计数法,并设置Excel标题样式
poi导出下拉列表,数据有效性约束
Word文档的拆分合并。学习将Word文档进行拆分和合并。
POI 合并单元格 及 注意事项
poi生成excel及合并单元格示例,详见文章http://blog.csdn.net/geloin/article/details/17219885
使用poi 操作表格,Android可以操作简单的表格,进行合并单元格等操作
java poi 填充word(合并单元格,添加图片,设置字号)(csdn)————程序
NULL 博文链接:https://wangzhen-2357.iteye.com/blog/2282610
利用poi进行excel相同内容合并单元格,只摘要了传入部分功能,请关注addMergedRegion方法