首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅使用CFSpreadsheet读取已填充的列

如何仅使用CFSpreadsheet读取已填充的列
EN

Stack Overflow用户
提问于 2017-03-11 00:30:16
回答 1查看 606关注 0票数 0

我正在尝试使用<cfspreadsheet>从电子表格中读取数据,并将该数据插入到数据库表中。假设我的表有10个可能的列:FName,LName,MName, Address1,Address2,Address3,city,state,zip and email。用户可以使用Excel提交数据,但他们不必提交所有10列的数据。他们可以只为FName,EmailFName, LName, City, Email提交数据。我的电子表格代码应该能够只读取在Excel文件中提交的列,而不是读取所有空白列。

我想通过使用<cfspreadsheet>的"columnnames“属性,我可以指示cfspreadsheet从这些列名中读取数据,不幸的是,我错了,或者我做错了?

下面是我的cfspreadsheet代码:

代码语言:javascript
复制
 <cfspreadsheet action="read" 
     src="#Trim(PathToExcelFile)#" 
     columnnames="#Trim(Form.UserColumnList)#" 
     excludeheaderrow="true" 
     query="FindData">
 </cfspreadsheet>

EN

回答 1

Stack Overflow用户

发布于 2017-03-15 22:52:37

user3779216写道: ...显然,每个机构(共有9家)将有不同的excel布局。我也许能够为用户创建一个UI来将他们excel中的列名称映射到我的表中的列名称,例如,从excel中的列名下拉列表和我的表中的列名下拉列表,并让用户选择excel中的哪一列与我的表中的哪一列相匹配。

实际上,这会让它变得非常简单。只需将列的有序列表提供给cfspreadsheet,就像您最初所做的那样,查询列名将自动正确映射。

例如,如果用户上传了以下布局:

。。并选择此列顺序:

  • Zip,Address1,LName,FName,电子邮件,MName,Address2,城市,州

将该列表提供给cfspreadsheet将生成一个具有所需列映射的查询,您可以像往常一样使用它。(如果需要,添加代码以检测和跳过第一行中的可选标题名称。)

代码语言:javascript
复制
<cfspreadsheet action="read" 
     src="#variables.pathToFile#"
     columnNames="#form.OrderedColumnNames#"
     query="sheetData" />

<cfdump var="#variables.sheetData#">

NB:显然,真正的代码应该包括输入列表的验证。确保它包含所有必需的列,并且未被篡改以包含无效字符等。

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

https://stackoverflow.com/questions/42723230

复制
相关文章

相似问题

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