Fehler beim Erstellen eines großen Dropdown-Menüs in Excel mit ColdFusion

Diesen Code habe ich geschrieben, um ein großes Dropdown-Menü in ColdFusion zu erstellen, aber er funktioniert nicht für mich. Könnte mir bitte jemand helfen, mein Problem zu beheben? Der neue Code ist

    <cfquery name="getPOP" datasource="l_webalc">
    select distinct center_code from alc_pop
    </cfquery>
    <cfset countryName= ArrayNew(1)>
      <cfloop query="getPOP">
      <cfset arrayappend(countryName, getPOP.center_code)>
    </cfloop>

    <script>
      workbook = new HSSFWorkbook();
      realSheet = workbook.createSheet("Sheet xls");
      hidden = workbook.createSheet("hidden");

      for (int i = 0, length= countryName.length; i < length; i++) {
        String name = countryName[i];
        HSSFRow row = hidden.createRow(i);
        HSSFCell cell = row.createCell(0);
        cell.setCellValue(name);
      }

      namedCell = workbook.createName();
      namedCell.setNameName("hidden");
      namedCell.setRefersToFormula("hidden!A1:A" + countryName.length);
      constraint = DVConstraint.createFormulaListConstraint("hidden");
      addressList = new CellRangeAddressList(0, 0, 0, 0);
      validation = new HSSFDataValidation(addressList, constraint);
      workbook.setSheetHidden(1, true);
      realSheet.addValidationData(validation);
      stream = new FileOutputStream("c:\\range.xls");
      workbook.write(stream);
      stream.close();
    </script>

Update 1:

(Vonanderer Thread) Ich erhalte folgende Fehlermeldung:

Das Funktionsschlüsselwort fehlt in der FUNCTION-Deklaration. Der CFML-Compiler verarbeitete: Eine Skriptanweisung, die mit HSSFWorkbook in Zeile 32, Spalte 1 beginnt. Eine Skriptanweisung, die mit function in Zeile 31, Spalte 9 beginnt. Ein cfscript-Tag, das in Zeile 30, Spalte 2 beginnt.

Update 2:

Wieder habe ich diesen Code geändert und jetzt ist der neue Fehler

"Der versteckte Wert nicht A1: A kann nicht in eine Zahl umgewandelt werden."

Ich habe die Objekte wie in den Kommentaren erwähnt bearbeitet und das Skript in cfscript geändert. Bitte helfen Sie mir, diesen Fehler zu beheben.

<cfscript>
workbook = createObject("java", "org.apache.poi.hssf.usermodel.HSSFWorkbook");
realSheet = workbook.createSheet("Sheet xls");
 hidden = workbook.createSheet("hidden");
 for (i = 1; i <= arrayLen(countryName); i++){
   name = countryName[i];
    row = hidden.createRow(i);
    cell = row.createCell(0);
   cell.setCellValue(name);
 }
 namedCell = workbook.createName();
 namedCell.setNameName("hidden");
 namedCell.setRefersToFormula("hidden!A1:A"+arrayLen(countryName));
 dv = createObject("java", "org.apache.poi.hssf.usermodel.DVConstraint");
 constraint = dv.createFormulaListConstraint("hidden");
 addressList = cellRangeList.init(0, 0, 0, 0);
 validation = dataValidation.init(addressList, constraint);
 workbook.setSheetHidden(1, true);
 realSheet.addValidationData(validation);
  stream = new FileOutputStream("c:\\range.xls");
 workbook.write(stream);
 stream.close();
</cfscript>    

Update 3:

Ich habe den Code aktualisiert, um die genannten Probleme zu beheben, und erhalte jetzt diesen Fehler

"Die Methode setSheetHidden wurde nicht gefunden ..."

in der folgenden Zeile:

workbook.setSheetHidden(1, true); 

Antworten auf die Frage(2)

Ihre Antwort auf die Frage