@@ -103,7 +103,7 @@ TfrmExportGrid = class(TExtForm)
103103 procedure SetExportFormatByFilename ;
104104 procedure SelectRecentFile (Sender: TObject);
105105 procedure PutFilenamePlaceholder (Sender: TObject);
106- function FormatExcelCsv (Text, Encloser: String; DataType: TDBDatatype): String;
106+ function FormatCsv (Text, Encloser: String; DataType: TDBDatatype; SubFormat: TGridExportFormat ): String;
107107 function FormatJson (Text: String): String;
108108 function FormatPhp (Text: String): String;
109109 function FormatLatex (Text: String): String;
@@ -590,14 +590,14 @@ procedure TfrmExportGrid.menuCSVClick(Sender: TObject);
590590end ;
591591
592592
593- function TfrmExportGrid.FormatExcelCsv (Text, Encloser: String; DataType: TDBDatatype): String;
593+ function TfrmExportGrid.FormatCsv (Text, Encloser: String; DataType: TDBDatatype; SubFormat: TGridExportFormat ): String;
594594begin
595595 Result := Text;
596596 // Escape encloser characters inside data per de-facto CSV.
597597 if not Encloser.IsEmpty then
598598 Result := StringReplace(Result, Encloser, Encloser+Encloser, [rfReplaceAll]);
599599 // Remove milliseconds from date/time values, unsupported by Excel. See issue #922
600- if DataType.Category = dtcTemporal then begin
600+ if (SubFormat = efExcel) and ( DataType.Category = dtcTemporal) then begin
601601 Result := ReplaceRegExpr(' \.(\d+)$' , Result, ' ' );
602602 end ;
603603end ;
@@ -1020,7 +1020,7 @@ procedure TfrmExportGrid.btnOKClick(Sender: TObject);
10201020 if GridData.IsNull(ResultCol) then
10211021 Data := editNull.Text
10221022 else begin
1023- Data := FormatExcelCsv (Data, Encloser, GridData.DataType(ResultCol));
1023+ Data := FormatCsv (Data, Encloser, GridData.DataType(ResultCol), CurrentExportFormat );
10241024 Data := Encloser + Data + Encloser;
10251025 end ;
10261026 tmp := tmp + Data + Separator;
0 commit comments