我可以调整Excel列的宽度而无需单独设置它们吗?

时间:2012-05-15 08:39:59

标签: excel coldfusion formatting cfspreadsheet

我正在使用cfspreadsheet使用ColdFusion生成Excel电子表格。我插入标题行,然后使用spreadsheetAddRows将查询转储到工作表中。问题是列通常不够宽。我知道我可以使用SpreadsheetSetColumnWidth单独调整每个列,但有什么方法可以将自动宽度应用于整个工作表吗?我不知道每列的最大宽度,我不想单独将它应用于每一列。 Excel具有列的自动宽度功能 - 有没有办法从ColdFusion代码触发它? (或者甚至更好:我可以添加到自动宽度 - 将每列设置为最大宽度+ 2或者什么?)

1 个答案:

答案 0 :(得分:5)

最后我检查了没有记录的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>