在导出的excel文件中包含链接

我正在创build一个查询,然后将其下载到一个Excel文档中。 我想在Excel文档中包含一些链接,但不知道如何去做。 我试着把一个锚标签放在querySetCell()值中,但是只是把html打印到excel文件中,html不会被parsing。 我正在使用CF10。 以下是我的代码,任何意见表示赞赏。

 <cfset q = queryNew("#columnNames#")> <cfset queryAddRow(q)> <cfset querySetCell(q, "Attributes", "Part Number")> <cfset querySetCell(q, "PrimaryPart", "#local.primaryPart.getProductNumber()#")> <cfset i = 0> <cfloop array="#local.comparableParts#" index="part"> <cfset i++> <cfset querySetCell(q, "alternatePart"& i, "#part.getPartNumber()#")> </cfloop> <cfspreadsheet action="write" query="q" filename="partCompare.xls" overwrite="true" /> <!--- Make a spreadsheet object ---> <cfset s = spreadsheetNew()> <!--- Add header row ---> <cfset spreadsheetAddRow(s, "#columnNames#")> <!--- format header ---> <cfset spreadsheetFormatRow(s, {bold=true, fgcolor="lemon_chiffon"}, 1)> <cfset spreadsheetAddRows(s, q)> <cfheader name="content-disposition" value="attachment; filename=partCompare.xls"> <cfcontent type="application/msexcel" variable="#spreadsheetReadBinary(s)#" reset="true"> 

更新 :我根据评论对代码进行了一些更改。 现在链接显示在excel文档中,但是“友好名称”显示为0,直到我在Excel中单击“启用编辑”button。 如果友好名称从头开始显示,但是如果不可能,或者取决于用户设置,这应该很好。

 <cfset partCompareQueryObj = queryNew("#columnNames#")> <cfset queryAddRow(partCompareQueryObj)> <cfset querySetCell(partCompareQueryObj, "Attributes", "Part Number")> <cfset querySetCell(partCompareQueryObj, "PrimaryPart", "#local.primaryPart.getProductNumber()#")> <cfset i = 0> <cfloop array="#local.comparableParts#" index="part"> <cfset i++> <cfset querySetCell(partCompareQueryObj, "alternatePart"& i, "#part.getPartNumber()#")> </cfloop> <cfspreadsheet action="write" query="partCompareQueryObj" filename="partCompare.xls" overwrite="true" /> <!--- Make a spreadsheet object ---> <cfset partCompareSpreadSheet = spreadsheetNew()> <!--- Add header row ---> <cfset spreadsheetAddRow(partCompareSpreadSheet, "#columnNames#")> <!--- format header ---> <cfset spreadsheetFormatRow(partCompareSpreadSheet, {bold=true, fgcolor="lemon_chiffon"}, 1)> <cfset spreadsheetAddRows(partCompareSpreadSheet, partCompareQueryObj)> <cfset SpreadsheetSetCellFormula(partCompareSpreadSheet, 'HYPERLINK("http://www.google.com","#local.primaryPart.getProductNumber()#")', 2, 2)> <cfset i = 0> <cfloop array="#local.comparableParts#" index="part"> <cfset i++> <cfset SpreadsheetSetCellFormula(partCompareSpreadSheet, 'HYPERLINK("http://www.google.com","#local.primaryPart.getProductNumber()#")', 2, i+2)> </cfloop> <cfheader name="content-disposition" value="attachment; filename=partCompare.xls"> <cfcontent type="application/msexcel" variable="#spreadsheetReadBinary(partCompareSpreadSheet)#" reset="true"> 

确保通过调用ColdFusion的SpreadsheetSetCellFormula()函数来调用Excel的Hyperlink()函数。

 <cfset spreadsheetSetCellFormula(sheetName , 'HYPERLINK(url, linkText)' , rowNumber , columnNumber)>