【问题标题】:CFSpreadSheet - format column not formatting the entire columnCFSpreadSheet - 格式化列不格式化整个列
【发布时间】:2014-10-31 00:57:37
【问题描述】:

使用 CF10 Standard 从查询创建电子表格。到目前为止,无论我尝试了什么,特定列的格式都会在第 32 行(1 个标题行,31 个数据)停止,即使整个工作表填充到 186 行。

<cfscript>
 dfStyle=StructNew();
 dfStyle.fgcolor="pale_blue";
 dfStyle.dataformat="mm/dd/yyyy";
 theSheet = SpreadSheetNew('mysheet');
 SpreadSheetAddRow(theSheet,'SID,FIRST,LAST,ADDRESS1,ADDRESS2,CITY,STATE,ZIP,EMAIL,ADDED,PID');
 SpreadSheetAddRows(theSheet,qry);
 SpreadSheetFormatColumn(theSheet,dfStyle,10);
</cfscript>

我正在尝试在“添加”列上获得一致的 mm/dd/yyyy 格式。相反,我通过第 31 行得到它,然后在行中得到像 41937.56594 这样的日期。

在公式栏中,我将“10/20/2014 12:25:23 PM”显示为第一个值,将“41932.552037037”显示为第二个值。

如果我在查询中格式化日期(即 date_format(sp_add,'%c/%e/%Y') AS spadd),我确实得到了一个很好的日期格式,但蓝色仍然停止在第 32 行。

这是匿名查询的 cfoutput - 顶行已格式化,底行丢失格式(背景颜色 - 查询中的格式日期)。我现在还从查询中删除了 ADDRESS2 列。

【问题讨论】:

  • 最后格式化的行和第一个未格式化的行的特定字段的值是多少?
  • 你试过xml格式吗? (xlsx) 将您的新命令修改为spreadsheetNew('Mysheet',true),看看会发生什么。在引擎盖下,它使用不同的格式。
  • 尝试 xml 格式...但对我来说这似乎是一个错误。我会在 bugbase 中寻找。
  • 我对报告的错误进行了快速调查,但没有看到类似的情况。仅供参考。
  • 您是否在 Office 365 中查看结果?我最近在 Office 365 上遇到了一个孤立用户的问题。最后我们选择忽略这个问题,因为 Office 365 中其他版本的 Office 的错误会正确显示日期。

标签: coldfusion coldfusion-10


【解决方案1】:

我不确定问题出在哪里,但请尝试使用 XML 格式选项(生成 xlsx 文件而不是旧式 xls 文件的选项)。在您的代码中,将“true”作为第二个参数添加到您的电子表格new() 函数调用中。

<cfscript>
 dfStyle=StructNew();
 dfStyle.fgcolor="pale_blue";
 dfStyle.dataformat="mm/dd/yyyy";

 theSheet = SpreadSheetNew('mysheet',TRUE);

 SpreadSheetAddRow(theSheet,'SID,FIRST,LAST,ADDRESS1,ADDRESS2,CITY,STATE,ZIP,EMAIL,ADDED,PID');
 SpreadSheetAddRows(theSheet,qry);
 SpreadSheetFormatColumn(theSheet,dfStyle,10);
</cfscript>

这将解决问题 - 虽然我们不知道为什么:)

【讨论】:

  • Thant 帮助了,非常感谢.. 很疯狂,但它确实有效。
猜你喜欢
  • 1970-01-01
  • 2014-09-18
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
相关资源
最近更新 更多