Lucee cfquery к CSV-файлу неправильно форматируется - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь взять результат запроса и поместить его в файл CSV, чтобы затем отправить его пользователю по электронной почте. Все данные в CSV-файле верны, но я также получаю элементы HTML по некоторым причинам. Вот мой код:

<cffunction name="ledgerTest" access="remote" >

    <cfquery name="ledgerCheck" datasource="RBDMS_UPDATE">
     SELECT * FROM dbo.OOGNS_Schedules 
    </cfquery>
     <cfoutput>  
                <cfsavecontent variable="myCSV">

                    <div>
                        <table border="1"> 
                            <thead align="center">
                                <th>Job Key</th>
                                <th>INSPECTOR</th>
                                <th>PERMIT USER</th>
                                <th>START DATE</th>
                                <th>END DATE</th>
                            </thead>
                            <cfloop query="ledgerCheck">
                                <tr align="left">
                                    <td>#JobKey#</td>
                                    <td>#Inspector#</td>
                                    <td>#permitUser#</td>
                                    <td>#StartDate#</td>
                                    <td>#EndDate#</td>
                                </tr> 
                            </cfloop>
                        </table>
                    </div>

            </cfsavecontent>
          </cfoutput>  
                <cffile action="write" file="temp/ok.csv" output="#myCSV#" />

</cffunction>

А вот полученный CSV-файл (я вычеркнул адрес электронной почты людей):

enter image description here

Я думаю, что проблема может быть связана с тегом, потому что без него я не получаю данные из запроса. Без тега файл CSV содержит только мой код точно. Тем не менее, независимо от того, куда я перемещаю тег, результат будет одинаковым.

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Единственной проблемой было то, что я использовал .csv. Я изменил его с ok.csv на ok.xls, и он отлично работает.

0 голосов
/ 05 марта 2020

Вы записываете таблицу HTML в файл, который вы называете .csv. Это очень неправильно. Вы можете записать это в файл с расширением .html и открыть его в Excel. Это может работать, так как Excel интерпретирует HTML таблицы. Если вам нужен CSV-файл, вы должны записать свои данные так, как вам нужно. Каждый столбец отделяется ; (точка с запятой) и разрывом строки #chr(13)##chr(10)# после каждой строки.

<cfsavecontent variable="myCSV">                 
    <cfloop query="ledgerCheck">#JobKey#;#Inspector#;#permitUser#;#StartDate#;#EndDate##chr(13)##chr(10)#</cfloop>
</cfsavecontent>
...