Excel 2007错误的CSV文件?

时间:2013-10-14 09:36:11

标签: excel delphi delphi-7

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

1.976139e-2<TAB>22.98027

我得到了这两个列值:

1.98E+04<TAB>2.298.027

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

谢谢,

约瑟普布罗兹

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:-2)

尝试使用引号。

"1.976139e-2"<TAB>"22.98027"