当前位置: 首页 > 知识库问答 >
问题:

ColdFusion CFSpreadsheet读取空单元格

夏理
2023-03-14

我是否遗漏了一些奇怪的设置,会使cfspreadsheet忽略空白单元格?

<cfspreadsheet action="read" src="#theFile#" query="SpreadSheetData" headerrow="1">
<cfdump var="#SpreadSheetData#" />

最后我编写了一个helper函数,该函数删除了col_n)列。

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

共有1个答案

林英朗
2023-03-14

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

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

   <cfspreadsheet action="read"
            src="c:/path/to/file.xls"
            columns="3"
            headerrow="1"
            query="qResult" />

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

 类似资料:
  • 1、我希望能够从封闭工作簿的单元格中读取值 算法: > 从关闭的excel文件读取- 需要读取第一行第1列到第200列的整行 变量1等于(A1)的单元格值,其中A1是字符串变量2等于(B1)的单元格值,其中B1是整数变量3等于(c1)的单元格值,其中c1是字符串:::变量200等于(第1行第200列)的单元格值,其中值是字符串 最好的方法是什么? 我应该能穿过100排 你能告诉我吗

  • 我有一个巨大的excel文件,其中包含大量列,如下所示:- 当我打印excel中的所有值时,我的代码生成的输出是:- 所以,如果我们看看上面的输出,我们可以注意到我留下空白值的单元格没有被POI库拾取。有没有一种方法可以让这些值为空?还是一种识别所呈现的值跳过空白单元格的方法? 请注意:我使用的不是usermodel(org.apache.poi.ss.usermodel),而是一个事件API来处

  • 问题内容: 我有一个问题,当java应用程序读取Excel文件.xlsx扩展名时,该应用程序正常工作,但是在工作簿中有很多工作表,其中1、2个工作表正确读取,但是当读取3个工作表时,没有读取所有单元格当我打开并从Excel文件中检查时,单元格存在空值,但是当apache poi读取该单元格时,该单元格将被忽略。原因是什么? 更新资料 在读取excel文件上方,虽然我在一行中检查了Excel文件20

  • 我有一个问题,当java应用程序读取Excel文件.xlsx扩展时,应用程序正常工作,但工作簿中有很多工作表,1、2个工作表正确读取,但当读取3个工作表时,没有读取所有单元格,当我打开并检查Excel文件时,单元格存在空值,但当apache poi读取它时,单元格只是忽略了空单元格。什么是事业?更新 上面读的是excel文件,而我检查的excel文件中有一行20个单元格,而它读的有的行只有14行。

  • 我有一个带有sheet1 excel文件,该文件的第2行和第10列有一个我需要读取的值。这是我的代码。 获取了cell对象Excel.Range后,我不知道如何读取该单元格的内容。我试着把它转换成数组并在它上面循环,我试着转换成字符串数组等等,我确信这是非常简单的。有没有直接的方法只得到一个字符串的单元格值?

  • 读取文件已支持 windows 系统,版本号大于等于 1.3.4.1; 扩展版本大于等于 1.2.7; PECL 安装时将会提示是否开启读取功能,请键入 yes; 优势 最大内存 == 最大单元格数据体积 该模式可满足 xlsx 大文件读取 函数原型 nextCellCallback(callable $callback, string $sheetName = NULL): void 回调函数