代码之家  ›  专栏  ›  技术社区  ›  Jason

在网格中表示单元格格式的最佳方法?

  •  0
  • Jason  · 技术社区  · 16 年前

    我正在为客户构建动态报告功能。他们希望创建新的存储过程,并使它们与新的报告相对应。我们使用的是T-SQL,网格/报表中的每个单元格都可以有自己的格式和/或功能。

    我正在寻找一种格式规范来识别数据的表示、颜色和条件…例如,我在想这样的事情:

    {数据}{{Frase}
    123.56$,0.00

    结果在…123.56美元

    我正在寻找标准的方法来表示格式化字段,以及颜色和条件的可能性。已经有标准了吗?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Shalom Craimer    16 年前

    这完全取决于你在找什么。你必须问自己你想要应用哪种格式。您可能需要考虑以下一些情况:

    • 行内格式

      是否希望单元格包含混合格式(例如“ 一千二百三十四 . 五百六十七 “在单个单元格中显示粗体、常规和斜体?”

    • 多列 基于输出

      是否要在基于多个单元格的单元格中输出值?

      Cell1="1234"
      Cell2="56"
      Cell3={Cell1}.{Cell2} 
      ---> which would output "1234.56"
      

    如果不需要其中任何一项,那么您所要做的就是为整个单元格提供一种格式。让我们把它分成两个格式化元素: 变换 视觉效果 :

    • 将“1234.5678”格式化为“1234.56”是一种转换。它必须由知道如何将值解释为数字以及如何将该数字转换为数字字符的文本字符串的代码来完成。

    • 使单元格变为蓝色、文本变为红色或加粗-这些都是可视转换,只是单元格中数据显示的一组属性。我们不关心单元中的数据类型,因为我们只需要在屏幕上放置像素。

    所以,归根结底,这就是你想要发生的一切。如果要生成HTML报表,则HTML&css是描述单元格视觉效果格式的非常方便的方法,因为您不必将其转换两次。

    据我所知,视觉效果显示的编码只有几个标准,它们类似于sgml-tex、html、postscript等;它们都有“标记”(有时带有“属性”)来修改标记内内容的显示。

    这就给我们留下了转换的格式。有两种常见的方法。第一个是程序性的。您列出了一组您希望对数据进行的转换,以将其转换为文本。现在,我们经常使用替换掩码,就像在您的示例中一样, $#,##0.00 ,或者像 sprintf %.2f 等。

    同样,只需选择一个在您的环境中使用最简单的格式说明符。如果您使用的是一种接受某种格式的语言,那么就使用它!