Звучит как ошибка для меня. Я собрал бы репро-кейс и отправил сообщение об ошибке bugbase.adobe.com .
Хотя это и не идеально, один из возможных обходных путей - установить значение столбца даты после форматирования строки. К сожалению, установка значения ячейки также стирает цвет фона, так что вам также необходимо повторно применить его. Протестировано с CF11, YMMV.
Примечание: временное решение вообще не меняет порядок столбцов, только , когда они отформатированы . Таким образом, «дата» все еще заканчивается в 1-м столбце.
Пример запуска на TryCF.com
<cfscript>
objSheet = SpreadSheetNew("Sheet1", true);
for(iRow = 1; iRow <= 100; iRow++) {
// populate everything EXCEPT the date column
SpreadsheetSetCellValue(objSheet, "B", iRow, 2);
SpreadsheetSetCellValue(objSheet, "C", iRow, 3);
SpreadsheetSetCellValue(objSheet, "D", iRow, 4);
SpreadsheetSetCellValue(objSheet, "1234", iRow, 5);
isAlternateRow = (iRow MOD 2) EQ 0;
rowColor = isAlternateRow ? 'yellow' : 'white';
// format whole row
if (isAlternateRow) {
SpreadsheetFormatRow(objSheet, { fgcolor = rowColor }, iRow);
}
// finally apply date and reformat that cell
SpreadsheetSetCellValue(objSheet, now(), iRow, 1, 'date');
SpreadSheetFormatCell(objSheet, { dataformat = 'mm-dd-yyyy', fgcolor = rowColor}, iRow, 1);
}
</cfscript>
Результаты: