При добавлении данных в массив один из элементов имеет запятую в своем значении. Примером этого значения является «Обрезки на 103, 96 и 90».запятая в элементе массива разрывает таблицу
Используя следующий код для добавления элементов массива к элементу таблицы, элемент описания части, как описано выше, имеет свои данные, охватывающие несколько столбцов в электронной таблице. Он обрабатывается как отдельные элементы, а не один.
<!---Create file name variable--->
<cfset filenametouse = 'PartLevel_Report' />
<!---Set directory and full file path--->
<cfset theDir = GetDirectoryFromPath(GetCurrentTemplatePath()) />
<!---Attach file extension to full file path and file name--->
<cfset theFile = theDir & filenametouse & ".xls" />
<cflock name="fileActionSentItems" type="exclusive" timeout="30" throwontimeout="true">
<cfset SpreadsheetObj = spreadsheetNew()>
<cfset fcol = {}>
<cfset fcol.dataformat = "@">
<!---Create the column headings--->
<cfset SpreadsheetAddRow(SpreadsheetObj, "Part ##, Reorder ##, Description, Bin ##, Current Inv., Staged, Allocations, Available Inv., Shelf Count, Total Shipped, Total ## of Stores, Total Ordered, Avg. Per Store, Lead Time (in days), Low Water Mark, Total ## of Stores Remaining")>
<cfoutput query="getParts" group="partnum">
<cfset aColumns = [ partnum , shortchar08 , partdescription , binlist , inventory.currinv , staged.stagedqty , alloc.allocqty , available , shelfCount , shipdtl.shipqty , getNumberofStores.numStores , tordered , APS, paddedLeadTime, LWM , storesRemain] />
<!---add the column data to the spreadsheet--->
<cfset SpreadsheetAddRow(SpreadsheetObj, ArrayToList(aColumns)) />
</cfoutput>
<!---Generate the spreadsheet--->
<cfspreadsheet action="write" filename="#theFile#" name="SpreadsheetObj" sheetname="Sheet1" overwrite="true" />
Как я могу смягчить эту проблему?
Решено: я устанавливаю переменную в описание части, причем все запятые заменены точкой с запятой. Теперь все данные в той же колонке:
<cfset cleanDesc = rereplace(partdescription, ",", ";", "all")>
<cfset aColumns = [ partnum , shortchar08 , cleanDesc , binlist , inventory.currinv , staged.stagedqty , alloc.allocqty , available , shelfCount , shipdtl.shipqty , getNumberofStores.numStores , tordered , APS, paddedLeadTime, LWM , storesRemain] />
Посмотреть это: http://cfsimplicity.com/30/workaround-for-spreadsheetaddrow-limitation-when -column-values-содержать-запятые –
Спасибо за руководство, Дэн; однако я не понимаю, как перевести пример для работы в моей ситуации. Я не использую cfscript, и я собираю таблицу в моем запросе. Я редактировал мой оригинальный вопрос с большим количеством кода для разработки. – aparker81
@ aparker81 cfscript для cfml очень просто. Вместо x = y (z); это ', чтобы вы могли следить за тем, что отправил @Dan A. –
Henry