当我运行这段代码:SpreadsheetFormatColumn()右边框
<cfscript>
flinstones = "fred,wilma,pebbles";
Workbook = Spreadsheetnew("Workbook");
for (i = 1; i lte listlen(flinstones); i ++) {
ThisFlinstone = ListGetAt(Flinstones, i);
if (ThisFlinstone == "wilma")
SpreadSheetAddRow(Workbook, "#ThisFlinstone#,barney");
else
SpreadSheetAddRow(Workbook, ThisFlinstone);
}
Format = {};
format.rightborder = "thin";
SpreadsheetFormatColumn(WorkBook, Format, 2);
MYfile = "d:\dw\dwtest\dan\abc.xls";
writedump(format);
</cfscript>
<cfspreadsheet action="write" filename="#MYFile#" name="Workbook"
sheet=1 sheetname="flinstones" overwrite=true>
我希望看到一个工作表中三行。第二行将有两列,在单元格中带有威尔玛和巴尼。到目前为止,我看到了我的期望。我也希望看到列B右手边框。我实际上看到了右手边框的单元格B2。
如果我改变了:
SpreadSheetAddRow(Workbook, ThisFlinstone);
这个
SpreadSheetAddRow(Workbook, "#ThisFlinstone#, ");
我看到右手边第一个三排柱B的
有没有办法有右边框适用于所有列B?
谢谢你的回答。尽管澄清点。为所有单元格赋值并不会导致格式应用于整个列。它会导致格式化应用于包含数据的单元格。我正在寻找一些代码来模拟选择整个列并使用excel工具栏添加右边框的excel行为。我不认为有任何存在。在我实际做的工作中,我的解决方法是使用空间是数据和单元格将被格式化的事实。我只是不喜欢这种方法,因为它效率低下。 – 2013-02-25 20:14:42
(编辑)确实,我不清楚你是真的意味着“整个专栏”还是只是那些你填充的行。为了回答你的问题,AFAIK在POI中是不可能的。 “单元格”必须存在才能格式化。所以唯一的解决方法是创建它们,或者通过设置一个值或使用'SpreadsheetFormatCellRange'(本质上是做同样的事情)。后者尽可能接近。但你是对的,它是低效的..也有一些[不愉快的副作用](http://stackoverflow.com/a/12699425/104223)。 – Leigh 2013-02-25 20:27:51
我根据评论更新了答案。 – Leigh 2013-02-25 20:49:51