2016-12-06 64 views
1

我有一個excel文件,我試圖讀取,然後在下拉菜單中顯示標題的值。我的Excel文件中的第一行具有所有的值(標題名稱)。如何循環瀏覽cfspreadsheet標題?

我使用下面的代碼,但是會發生什麼是所有標題名稱都以逗號出現在一行中。我想要將標題分開,以便它將顯示在許多<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> 
+0

運行該代碼片段我沒有做了很多與電子表格和ColdFusion,但如果excelHeader.columnList是回來爲列表,把它當作一個列表 - 通過循環列表,當你做你的選擇框 – luke

+0

我試圖循環使用列表,「#excelHeader.columnList#',它仍然不能按我想要的方式工作。 – gosi123

+0

就像我說的,我對excel和colfusion沒有太多瞭解,但是要循環播放列表,你需要像#headerItem# luke

回答

4

您可以試試這段代碼;

<!--- 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

+0

@Leigh嘿它很好。現在看起來更專業。謝謝。 – Justin