首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColdFusion CFSpreadsheet读取空单元格

ColdFusion CFSpreadsheet读取空单元格
EN

Stack Overflow用户
提问于 2013-05-02 23:24:13
回答 2查看 2.7K关注 0票数 1

很简单。模板中只有一列。客户端无法上载包含多个列的工作表。这曾经很管用。

所以只有一列的标题是ING_CAS,但是当我用cfspreadsheet读入文件时,我得到了COL_2COL_3ING_CAS。因此,不仅空白单元格被读取,而且由于这个属性headerrow="1",它们也被赋予了默认名称。

我现在有点不知所措。我一直在下载模板,选择无关紧要的空白行和列,然后删除它们,但一旦客户端获得文件,我就无法控制它。

有没有什么奇怪的设置会让cfspreadsheet忽略空白单元格?

代码语言:javascript
复制
<cfspreadsheet action="read" src="#theFile#" query="SpreadSheetData" headerrow="1">
<cfdump var="#SpreadSheetData#" />

我最终编写了一个帮助器函数,它去掉了COL_(n)列。

代码语言:javascript
复制
<cffunction name="CleanExcelQuery" access="public" returntype="query" output="false" hint="Strips out blank column headers picked up on read.">
    <cfargument name="SpreadSheetQuery" type="query" required="true" />

    <cfset var theColumnHeaders = SpreadSheetQuery.columnList>
    <cfset var theNewColumnHeaders = "">

    <cfloop list="#theColumnHeaders#" index="h">
        <cfif uCase(left(h,  4)) IS NOT "COL_">
            <cfset theNewColumnHeaders = ListAppend( theNewColumnHeaders,  h )>
        </cfif>
    </cfloop>

    <cfquery name="newSpreadSheetQuery" dbtype="query">
        Select #theNewColumnHeaders#
        From SpreadSheetQuery
    </cfquery>

    <cfreturn newSpreadSheetQuery />
</cffunction>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-02 23:41:50

cfspreadsheet仅忽略完全空白的单元格:没有值或格式(例如,当您选择一个单元格并使用“全部清除”时)。如果它选择了“额外”列,这是因为该列中的一个或多个单元格具有值或自定义单元格格式。这意味着它们并不是真正的“空白”。

如果知道列的位置,则可以使用columns属性仅读取该列中的值。例如,要读取列C

代码语言:javascript
复制
   <cfspreadsheet action="read"
            src="c:/path/to/file.xls"
            columns="3"
            headerrow="1"
            query="qResult" />

但我不确定我是否理解为什么这是一个问题。如果只需要一列,只需忽略代码中的其他列。您能详细说明为什么这会导致问题吗?

票数 1
EN

Stack Overflow用户

发布于 2013-05-04 05:23:13

如果您知道要始终读取哪些行,则可以使用以下命令:

代码语言:javascript
复制
<cfspreadsheet action="read" src="#path#" query="data" headerrow="1"  excludeHeaderRow = "true"   columns = "1-5"  >

上面的代码读取第1列到第5列。您也可以使用利的解决方案来读取前3列,或者可以执行类似columns=1,3,6的操作(如果我没记错的话)来从自定义范围读取

columns部件只读取您希望它读取的列,而不跳转。我用它来读取来自我们客户的文件,通常我会得到一些列,由于它们的格式,它们不是“空白”的。

您也可以查看cfspreadsheet的Cf文档,看看'column‘选项还支持哪些其他条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16341853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档