0

我正在使用 Delphi 7 从 COM 端口获取的数据生成 CSV 文件。现在,这似乎工作正常,因为任何其他电子表格软件都能正确读取生成的文件(例如 Open Office 和 Libre Office 电子表格软件)。Excel 2007 执行以下操作。而不是这两个列值:

1.976139e-2<TAB>22.98027

我得到了这两个列值:

1.98E+04<TAB>2.298.027

请注意,在任何文本编辑器(例如 Notepad++)中打开的生成文件具有正确的值。这里可能是什么问题?

谢谢,

约瑟普

4

2 回答 2

3

如果 Delphi 中的设置不符合您的需要,您可以在加载 CSV 之前更改它们。但是您应该确保在之后重置它们。

var
  Excel, WorkBook: Variant;
  KeepDecimalSeparator, KeepThousandsSeparator: String;
  KeepUseSystem: Boolean;
begin
  Excel := CreateOleObject('Excel.Application');
  Excel.Visible := true;
  try
    KeepDecimalSeparator := Excel.DecimalSeparator;
    KeepThousandsSeparator := Excel.ThousandsSeparator;
    KeepUseSystem := Excel.UseSystemSeparators;
    Excel.DecimalSeparator := '.';
    Excel.ThousandsSeparator := ',';
    Excel.UseSystemSeparators := false;
    WorkBook := Excel.WorkBooks.Open('C:\Temp\1.csv');
  finally
    Excel.DecimalSeparator := KeepDecimalSeparator;
    Excel.ThousandsSeparator := KeepThousandsSeparator;
    Excel.UseSystemSeparators := KeepUseSystem;
  end;
end;
于 2013-10-14T11:30:05.743 回答
-2

尝试使用引号。

"1.976139e-2"<TAB>"22.98027"
于 2013-10-14T11:03:15.443 回答