Ich versuche, einige Excel-Zellen obligatorisch zu machen, damit eine Nachricht angezeigt werden kann, wenn sie vom Benutzer leer gelassen werden.Wie mache ich Excel-Zellen obligatorisch?
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Data Validation");
DataValidationHelper dataValidationHelper = sheet.getDataValidationHelper();
DataValidationConstraint lengthConstraint = dataValidationHelper.createTextLengthConstraint(
DataValidationConstraint.OperatorType.BETWEEN, "2", "45");
CellRangeAddressList cellList = new CellRangeAddressList(0, 0, 1, 1);
DataValidation validation = dataValidationHelper.createValidation(lengthConstraint, cellList);
validation.setErrorStyle(ErrorStyle.STOP);
validation.createErrorBox("Error", "The length must be between 2 and 45.");
validation.setEmptyCellAllowed(false);
if (validation instanceof XSSFDataValidation) {
validation.setSuppressDropDownArrow(false);
validation.setShowErrorBox(true);
} else {
validation.setSuppressDropDownArrow(true);
}
sheet.addValidationData(validation);
Row row = sheet.createRow(0);
Cell cell = row.createCell(1);
cell.setCellValue("Text");
I verwendet validation.setEmptyCellAllowed(false);
und erwartet, dass er geleert Zellen davor verhindern sollte, aber es funktioniert nicht. Die Zelle/n, für die diese Einschränkung erzwungen wird, werden jedoch für eine Länge validiert, die zwischen 2 und 45 Zeichen beträgt.
Warum funktioniert validation.setEmptyCellAllowed(false);
in diesem Fall nicht? Wie mache ich eine Zelle obligatorisch, damit sie nicht leer bleiben kann?
Wenn die validation.setEmptyCellAllowed(false);
Methode verwendet wird, so scheint es, die Validierung Einschränkung korrekt in Excel angelegt wird.
Die Checkbox ignorieren leere nicht aktiviert ist. Excel lässt weiterhin zu, dass die Zellen, für die diese Einschränkung durchgesetzt wird, leer bleiben.
Der Zweck von Ignorieren leer in Excel kann anders sein, dass ich nicht verstehe. Jedenfalls muss ich bestimmte Zellen obligatorisch machen. Wenn versucht wird, sie zu leeren, sollte sie zurückgewiesen werden und eine entsprechende Fehlermeldung sollte angezeigt werden. Es kann erfordern einige Visual Basic-Tricks/Code in Excel eingebettet werden.
Ich kenne keine Lösung für Ihr Problem, das mit nur nativen Excel-Funktionalität erreicht werden kann. VBA (nicht VB) wird jedoch installiert, wenn Excel installiert wird. Das Ausführen von Makros kann durch Sicherheitsrichtlinien eingeschränkt werden. Versuchen Sie Folgendes: Wenn Excel geöffnet ist, klicken Sie mit der rechten Maustaste auf eine Registerkarte und wählen Sie Code anzeigen. Wenn ein Codefenster geöffnet wird, ist VBA installiert. –
@Tiny Markierung meines Kommentars –
Ja, das Codefenster wurde geöffnet. – Tiny