Я видел этот пост, но похоже, что есть решение. Во всяком случае, я использую ColdFusion 10 для создания электронной таблицы Excel. Однако, когда я использую SpreadsheetFormatRow() и передаю строки для форматирования, он делает только около 3, а затем резко останавливается. Вот пример...
Код ColdFusion
<cfscript>
rowCount = 1;
headingRows = 4;
// Create instance of new Spreadsheet
excelSheet = SpreadsheetNew("ReportName",false);
// HEADING (IMAGE) ROW FORMAT
formatHeadingRow = StructNew();
formatHeadingRow.fgcolor="blue";
// Add rows to fill the header area (must add as many as we are spanning with the above image)
for (x=0;x<headingRows;x++) {
SpreadsheetAddRow(excelSheet,"TEST,TEST,TEST,TEST,TEST,TEST,TEST,TEST,TEST,TEST,TEST,TEST");
SpreadsheetFormatRow(excelSheet,formatHeadingRow,rowCount);
rowCount++;
}
</cfscript>
<!--- stream it to the browser --->
<cfheader name="Content-Disposition" value="inline; filename=reportName.xls">
<cfcontent type="application/vnd.ms-excel" variable="#SpreadSheetReadBinary(excelSheet)#">
и вот скриншот получившегося листа Excel
Почему форматирование останавливается после X строк и ячеек? Если я перейду на использование формата XML с
excelSheet = SpreadsheetNew("ReportName",true);
он работает правильно. Однако я использую пользовательскую палитру для своих цветов, поэтому я не думаю, что переход на формат XLSX мне подойдет. Когда я пытаюсь, а затем звоню
palette = excelSheet.getWorkbook().getCustomPalette();
Я получаю сообщение об ошибке о том, что метод getCustomPalette() не определен.
coldfusion.runtime.java.MethodSelectionException: The getcustompalette method was not found
Может ли кто-нибудь помочь мне понять это? Спасибо!!!
Или даже лучше, поскольку он работает с форматом XML, может ли кто-нибудь показать пример использования пользовательской палитры с XLSX (формат xml)