diff --git a/src/Mod/Arch/ArchSchedule.py b/src/Mod/Arch/ArchSchedule.py index 3151ca51fb..5eecf12acc 100644 --- a/src/Mod/Arch/ArchSchedule.py +++ b/src/Mod/Arch/ArchSchedule.py @@ -536,20 +536,27 @@ class ArchScheduleTaskPanel: if not self.obj.Proxy.data: return - filename = QtGui.QFileDialog.getSaveFileName(QtGui.QApplication.activeWindow(), translate("Arch","Export CSV File"), None, "CSV (*.csv);;Markdown (*.md)"); + filename = QtGui.QFileDialog.getSaveFileName(QtGui.QApplication.activeWindow(), + translate("Arch","Export CSV File"), + None, + "Comma-separated values (*.csv);;TAB-separated values (*.tsv);;Markdown (*.md)"); if filename: filt = filename[1] filename = filename[0] if sys.version_info.major < 3: filename = filename.encode("utf8") # add missing extension - if (not filename.lower().endswith(".csv")) and (not filename.lower().endswith(".md")): + if (not filename.lower().endswith(".csv")) and (not filename.lower().endswith(".tsv")) and (not filename.lower().endswith(".md")): if "csv" in filt: filename += ".csv" + elif "tsv" in filt: + filename += ".tsv" else: filename += ".md" if filename.lower().endswith(".csv"): - self.exportCSV(filename) + self.exportCSV(filename,delimiter=",") + elif filename.lower().endswith(".tsv"): + self.exportCSV(filename,delimiter="\t") elif filename.lower().endswith(".md"): self.exportMD(filename) else: @@ -568,16 +575,13 @@ class ArchScheduleTaskPanel: rows.sort(key=int) return rows - def exportCSV(self,filename): + def exportCSV(self,filename,delimiter="\t"): - """Exports the results as a CSV file""" - - # use TAB to separate values - DELIMITER = "\t" + """Exports the results as a CSV/TSV file""" import csv with open(filename, 'w') as csvfile: - csvfile = csv.writer(csvfile,delimiter=DELIMITER) + csvfile = csv.writer(csvfile,delimiter=delimiter) csvfile.writerow([translate("Arch","Description"),translate("Arch","Value"),translate("Arch","Unit")]) if self.obj.DetailedResults: csvfile.writerow(["","",""]) diff --git a/src/Mod/Arch/Resources/ui/ArchSchedule.ui b/src/Mod/Arch/Resources/ui/ArchSchedule.ui index 3bb2cbbdff..e07353b61a 100644 --- a/src/Mod/Arch/Resources/ui/ArchSchedule.ui +++ b/src/Mod/Arch/Resources/ui/ArchSchedule.ui @@ -24,7 +24,11 @@ - + + + Unnamed schedule + + @@ -124,23 +128,8 @@ Leave blank to use all objects from the document - - - - - Adds a line below the selected line/cell - - - Add row - - - - - - - - - + + Deletes the selected line @@ -155,7 +144,22 @@ Leave blank to use all objects from the document - + + + + Adds a line below the selected line/cell + + + Add row + + + + + + + + + Clears the whole list @@ -170,11 +174,7 @@ Leave blank to use all objects from the document - - - - - + Put selected objects into the "Objects" column of the selected row @@ -184,7 +184,7 @@ Leave blank to use all objects from the document - + Imports the contents of a CSV file @@ -199,7 +199,7 @@ Leave blank to use all objects from the document - + <html><head/><body><p>This exports the results to a CSV or Markdown file. </p><p><span style=" font-weight:600;">Note for CSV export:</span></p><p>In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar -&gt; New sheet -&gt; From file -&gt; Link (Note: as of LibreOffice v5.4.5.1 the correct path now is: Sheets tab bar -&gt; Insert Sheet... -&gt; From file -&gt; Browse...)</p></body></html>