【问题标题】:Can I adjust the widths of Excel columns without setting them each individually?我可以调整 Excel 列的宽度而不单独设置它们吗?
【发布时间】:2012-05-15 08:39:58
【问题描述】:
我正在使用 cfspreadsheet 使用 ColdFusion 生成 Excel 电子表格。我插入一个标题行,然后使用spreadsheetAddRows 将查询转储到工作表中。问题是列通常不够宽。我知道我可以使用SpreadsheetSetColumnWidth 单独调整每一列,但是有什么方法可以将自动宽度应用于整个工作表?我不知道每列的最大宽度,我不想将它单独应用于每一列。 Excel 具有列的自动宽度功能——有什么方法可以从 ColdFusion 代码中触发它? (或者甚至更好:我可以添加到自动宽度 - 将每列设置为最大宽度 + 2 或其他东西吗?)
【问题讨论】:
标签:
excel
coldfusion
formatting
cfspreadsheet
【解决方案1】:
最后我检查了没有记录的 CF 函数。但是,您可以使用 POI 的 autoSizeColumn(columnIndex) 方法自动调整每列的大小。请注意 POI 对工作表和列索引使用基数为零。
<cfscript>
// create a workbook and add a long value
wb = SpreadSheetNew();
spreadSheetSetCellValue(wb, repeatString("x", 200), 1, 1);
// get the first sheet
sheet = wb.getWorkBook().getSheetAt( javacast("int", 0) );
// resize first column ie "A"
sheet.autoSizeColumn( javacast("int", 0) );
spreadSheetWrite( wb, "c:/test.xls", true );
</cfscript>