如何使用coldfusion将excel电子表格上传到现有表格中?

Con*_*eer 0 sql-server coldfusion coldfusion-10

如何使用 ColdFusion10 将 Excel 电子表格上传到现有表格中?我有一个已保存的 excel 电子表格,我有 CFQuery(“myQuery”)可以输出我需要的数据。如何循环查询并导入到现有表中?

数据库:MS SQL Server

到目前为止,我知道我需要遍历我拥有的所有数据的查询。

    <cffunction name="uploadDogSheet" access="public" output="yes" returnType="void" 
    hint="upload the spreadSheet">

<cfset currentRowChecked = "1"> 
<cfset lastRow = numberOfRows> <!-- sets the number of rows that it will validate-->


    <cfspreadsheet
    action="read"
    src="#SESSION.theExcelFile#"
    headerrow= "1"
    excludeHeaderRow = "true"
    query = "allDoggyData"
    rows = "1-#lastRow#" />     


    <cfscript>    

        allDataQuery = new Query(
        sql ="SELECT * FROM allDoggyData",
        dbtype = "query",
        allData = allData);
        allDataQueryResult = allDataQuery.execute().getResult();
    </cfscript> 




    <cfloop query="allDoggyData">

<CFQUERY DATASOURCE="#mydatabase#" name="input_req">
insert into temp_dog_upload (dogNameColumn, dogBreedColumn, dogColor)
          values
(
<cfqueryparam value="#allDoggyData.dogNameExcelColumn#" cfsqltype="cf_sql_varchar">,
<cfqueryparam value="#allDoggyData.dogBreedExcelColumn#" cfsqltype="cf_sql_varchar">,
<cfqueryparam value="#allDoggyData.dogColorExcelColumn#" cfsqltype="cf_sql_varchar">
)               
</CFQUERY>

</cfloop>

<p>The sheet has been uploaded!<p></span>
Run Code Online (Sandbox Code Playgroud)

fyr*_*roc 5

你问的很简单。将电子表格上传到您的服务器,然后使用 cfspreadsheet 阅读它。

<cfspreadsheet  
action="read" 
src = "filepath" 
columns = "range" 
columnnames = "comma-delimited list" 
excludeHeaderRow = "true | false" 
format = "CSV|HTML" 
headerrow = "row number" 
name = "text" 
query = "query name" 
rows = "range" 
sheet = "number" 
sheetname = "text"> 
Run Code Online (Sandbox Code Playgroud)

然后只需遍历您在 cfspreadsheet 中定义的查询

<cfloop query="queryname">

    <cfquery name="" datasource="">
       INSERT INTO ....
    </cfquery

</cfloop>
Run Code Online (Sandbox Code Playgroud)

PS 这是我在您删除帖子之前的回答,我无法再提交我的回答。