Как перебирать заголовки cfspreadsheet?

У меня есть файл excel, который я пытаюсь прочитать, а затем отображаю значения заголовков в раскрывающемся списке. Первая строка в моем файле Excel содержит все значения (имена заголовков).

Я использовал приведенный ниже код, но происходит то, что все имена заголовков отображаются в одной строке с запятыми. Я хочу, чтобы заголовки были разделены, чтобы они отображались в раскрывающемся списке со многими <option> вместо одного <option>. Как я могу это сделать?

    <!-- Read the header values from excel -->
    <cfset spreadsheet = "uploads/spreadsheet.xlsx">

    <cfspreadsheet action="read" headerrow="1" src="uploads/spreadsheet.xlsx" query="excelHeader" rows="1" />

    <cfset excelHeaders = excelHeader.columnList>

    <!-- Display the header names as a dropdown -->
    <select name="id_headers">
        <option>
            #excelHeaders#
        </option>
    </select>

person Gosi    schedule 06.12.2016    source источник
comment
я мало что делал с электронными таблицами и coldfusion, но если excelHeader.columnList возвращается как список, рассматривайте его как список - прокручивайте список, когда вы делаете свое поле выбора   -  person luke    schedule 06.12.2016
comment
Я попытался зациклиться, используя список, <cfloop query="excelHeader">#excelHeader.columnList#</cfloop>, и он все еще не работает так, как я хочу.   -  person Gosi    schedule 06.12.2016
comment
как я уже сказал, я не очень разбираюсь в excel и colfusion, но для перебора списка вам нужно что-то вроде ‹cfoutput›‹cfloop index=headerItem LIST=#excelHeaders#›#headerItem#‹/cfloop›‹/cfoutput›   -  person luke    schedule 06.12.2016
comment
Я пытался выполнить цикл, используя список Нет, это цикл query. Список — это просто строка, разделенная некоторым символом. Чтобы пройтись по списку, используйте атрибут list. Если вы прочитали документация cfloop, первые два примера демонстрируют, как перебрать список.   -  person Leigh    schedule 06.12.2016


Ответы (1)


Вы можете попробовать этот код;

<!--- create new spreadsheet and populate with sample data --->
<cfset theSheet = SpreadsheetNew("Expenses")>
<cfset SpreadsheetSetCellValue(theSheet,"column1",1,1)> 
<cfset SpreadsheetSetCellValue(theSheet,"column2",1,2)>
<cfset SpreadsheetSetCellValue(theSheet,"column3",1,3)>
<cfset SpreadsheetSetCellValue(theSheet,"column4",1,4)>

<!--- Write the spreadsheet to a file, replacing any existing file. ---> 
<cfset pathToFile = GetDirectoryFromPath(GetCurrentTemplatePath()) & "newSpreadsheet.xls">
<cfspreadsheet action="write" filename="#pathToFile#" name="theSheet" overwrite=true>

<!--- Read spreadsheet into query object ---> 
<cfspreadsheet action="read" headerrow="1" src="#pathToFile#" query="excelHeader" rows="1">

<!--- Display the header names as a dropdown --->
<cfoutput>
<select name="id_headers">
<cfloop list="#excelHeader.columnList#" index="option">
    <option>#option#</option>
</cfloop>
</select>
</cfoutput>

Вы можете запустить этот фрагмент кода в trycf.

person Justin    schedule 06.12.2016
comment
@Ли, привет, мило. теперь выглядит более профессионально. Спасибо. - person Justin; 07.12.2016