|
|
|
@ -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")) {
|
|
|
|
|