首页 > 解决方案 > tdxSpreadSheet,如何在代码中创建的单元格中格式化浮点数,例如“123.450”

问题描述

我正在使用 tdxSpreadSheet 组件。

我有一个客户在电子表格列中需要 3 个小数,例如“123.450”,但电子表格的格式始终为“123.45”,这对客户不利。

我在文档或我找到的任何示例中都找不到任何内容。

我知道在将此计算机创建的电子表格保存为文件后,可以使用 excel 更改格式。但由于这是一个总是变化的报告,所以客户希望它“正确”生成。

谁知道我该如何解决这个问题?

这是一个代码示例...

  with ssStock.ActiveSheetAsTable.CreateCell(ARow, ACol) do
  begin
    try
      if (AA = 'INVOICE NO') or (AA = 'ACT LENGTH') or (AA = 'NOM LENGTH') or (AA = 'PCS') then
        AsInteger := strToInt(AText)
      else if (AA = 'PORT OF DESTINATION') or (AA = 'CONTAINER NO') or (AA = 'ETD') or (AA = 'ETA') or (AA = 'PRODUCT') or (AA = 'QUALITY') or
           (AA = 'SHIPPER') or (AA =  'BOOK NO') or (AA = 'VESSEL') or (AA = 'Reference') then
        AsString := AText
      else if (AA = 'ACT M3') or (AA = 'PRICE VOLUME') or (AA = 'PRICE')  then begin

        SetText(AText);//AsFloat := strToFloat(AText)
      end
      else begin
        free;
        exit;
      end;
      Style.Font.Style := [];
    finally
    end;
  end;

标签: delphispreadsheet

解决方案


这应该可以解决问题。不确定这是否适用,SetText或者您是否需要使用AsFloat

with ssStock.ActiveSheetAsTable.CreateCell(ARow, ACol) do
begin
  Style.DataFormat.FormatCode := '0.000';
end;

根据他们的论坛(这也是上面片段的灵感),这个话题没有被充分记录,但那是 6 年前的事了,所以他们现在可能已经修复了。


推荐阅读