Skip to content

Commit 06322de

Browse files
committed
feat: keep time fractions intact for CSV exports
Refs #2098
1 parent 59659f0 commit 06322de

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

source/exportgrid.pas

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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);
590590
end;
591591

592592

593-
function TfrmExportGrid.FormatExcelCsv(Text, Encloser: String; DataType: TDBDatatype): String;
593+
function TfrmExportGrid.FormatCsv(Text, Encloser: String; DataType: TDBDatatype; SubFormat: TGridExportFormat): String;
594594
begin
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;
603603
end;
@@ -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

Comments
 (0)