Sto cercando di rendere alcune celle excel obbligatorie in modo che un messaggio possa essere visualizzato, se sono lasciate vuote dall'utente.Come rendere obbligatorie le celle excel?
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");
Ho usato validation.setEmptyCellAllowed(false);
e prevede che dovrebbe impedire alle cellule venga svuotato ma non funziona. Le celle su cui viene applicato questo vincolo sono tuttavia convalidate per una lunghezza compresa tra 2 e 45 caratteri.
Perché in questo caso non funziona validation.setEmptyCellAllowed(false);
? Come rendere obbligatoria una cella in modo che non possa essere lasciata vuota?
Quando si utilizza il metodo validation.setEmptyCellAllowed(false);
, sembra che il vincolo di convalida sia applicato correttamente in Excel.
La casella Ignora vuota sia selezionata. Excel consente ancora di lasciare vuote le celle su cui viene applicato questo vincolo.
Lo scopo di Ignora vuoto in Excel può essere diverso da quello che non capisco. Ad ogni modo ho bisogno di rendere certe celle obbligatorie. Se viene effettuato un tentativo di svuotarli, deve essere rifiutato e dovrebbe essere visualizzato un messaggio di errore appropriato. Potrebbe richiedere alcuni trucchi/codice Visual Basic da incorporare in Excel.
Non conosco soluzione al vostro problema che può essere realizzato con la funzionalità solo nativo di Excel. Tuttavia, VBA (non VB) viene installato ogni volta che viene installato Excel. L'esecuzione di macro può essere limitata dalle politiche di sicurezza. Prova questo: con Excel aperto, fai clic con il tasto destro sulla scheda di un foglio e seleziona Visualizza codice. Se si apre una finestra di codice, allora VBA è installato. –
@Tiny Segnalando il mio commento –
Sì, la finestra del codice è stata aperta. – Tiny