main
HuangHai 2 months ago
parent cce29db8ca
commit 9ba110b7e1

@ -39,9 +39,9 @@ public class MetadataTemplateGenerator {
Row headerRow = sheet.createRow(0);
headerRow.setHeightInPoints(20);
// 先设置所有列宽为44原22的两倍
// 先设置所有列宽为18
for (int i = 0; i < headers.length; i++) {
sheet.setColumnWidth(i, 44 * 256); // 44个字符宽度
sheet.setColumnWidth(i, 18 * 256); // 18个字符宽度
}
// 再创建单元格
@ -61,17 +61,35 @@ public class MetadataTemplateGenerator {
}
}
// 设置数据验证(是否为空、是否主键)
// 设置数据验证
DataValidationHelper validationHelper = sheet.getDataValidationHelper();
DataValidationConstraint constraint = validationHelper.createExplicitListConstraint(new String[]{"是", "否"});
CellRangeAddressList addressList = new CellRangeAddressList(1, 1000, 5, 6);
DataValidation validation = validationHelper.createValidation(constraint, addressList);
sheet.addValidationData(validation);
// 自动调整列宽
for (int i = 0; i < headers.length; i++) {
sheet.autoSizeColumn(i);
}
// 1. 数据类型下拉列表第3列索引2
String[] dataTypes = {"INT", "BIGINT", "DECIMAL", "VARCHAR", "CHAR", "TEXT", "DATE", "DATETIME", "BOOLEAN", "FLOAT", "DOUBLE"};
DataValidationConstraint typeConstraint = validationHelper.createExplicitListConstraint(dataTypes);
CellRangeAddressList typeAddressList = new CellRangeAddressList(1, 1000, 3, 3); // 数据类型列
DataValidation typeValidation = validationHelper.createValidation(typeConstraint, typeAddressList);
sheet.addValidationData(typeValidation);
// 2. 数据长度数字验证第4列索引3
DataValidationConstraint lengthConstraint = validationHelper.createNumericConstraint(
DataValidationConstraint.ValidationType.INTEGER,
DataValidationConstraint.OperatorType.GREATER_OR_EQUAL,
"0",
null
);
CellRangeAddressList lengthAddressList = new CellRangeAddressList(1, 1000, 4, 4); // 长度列
DataValidation lengthValidation = validationHelper.createValidation(lengthConstraint, lengthAddressList);
lengthValidation.setShowErrorBox(true);
lengthValidation.createErrorBox("输入错误", "请输入有效的数字");
sheet.addValidationData(lengthValidation);
// 原有的是否为空、是否主键验证
DataValidationConstraint yesNoConstraint = validationHelper.createExplicitListConstraint(new String[]{"是", "否"});
CellRangeAddressList yesNoAddressList = new CellRangeAddressList(1, 1000, 5, 6);
DataValidation yesNoValidation = validationHelper.createValidation(yesNoConstraint, yesNoAddressList);
sheet.addValidationData(yesNoValidation);
// 保存文件
try (FileOutputStream outputStream = new FileOutputStream("c:/元数据采集模板.xlsx")) {

Loading…
Cancel
Save