5

今天,我在从电子表格中读取 vlue 并尝试根据条件过滤它们并从过滤后的数据创建电子表格时遇到了一个非常奇怪的案例。这是我的步骤

  1. 阅读 Excel 表

    <cfspreadsheet action="read" src="#local.sFilePath#"    excludeHeaderRow="true" headerrow ="1" query="local.qExcelData" sheet="1" />
    
  2. 创建持有查询

    <cfset local.columnNames = "LoanNumber,Product," />
    <cfset local.qSuccessData = queryNew(local.columnNames,"VarChar,VarChar") />
    
  3. 根据条件过滤 Excel 返回的查询并将有效的查询添加到新的控股查询中

    <cfloop query="local.qExcelData" >
            <cfif ListFind(local.nExceptionRowList,local.qExcelData.currentrow) EQ 0>
              <cfset queryAddRow(local.qSuccessData) />
              <cfset querySetCell(local.qSuccessData, 'LoanNumber', local.qExcelData['Loan Number']) />
              <cfset querySetCell(local.qSuccessData, 'Product', local.qExcelData['Product']) />
            </cfif>
    </cfloop>
    
  4. 创建新电子表格

    <cfspreadsheet action="write" query="local.qSuccessData" filename="#local.sTempSuccessFile#" overwrite="true">
    

但是我在我的 excel 表中得到以下内容

Loannumber                           Product
coldfusion.sql.column@87875656we    coldfusion.sql.column@89989ER

请帮助解决这个问题。

4

1 回答 1

5

我相信查询循环没有正确地将值映射到 Holding-Query。

请修改您的循环如下:

<cfloop query="local.qExcelData" >
    <cfif ListFind(local.nExceptionRowList,local.qExcelData.currentrow) EQ 0>
      <cfset queryAddRow(local.qSuccessData) />
      <cfset querySetCell(local.qSuccessData, 'LoanNumber', local.qExcelData['Loan Number'][currentRow]) />
      <cfset querySetCell(local.qSuccessData, 'Product', local.qExcelData['Product'][currentRow]) />
    </cfif>
</cfloop>
于 2015-10-08T15:54:47.907 回答