You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2023/03/06 03:40:45 UTC

[linkis] branch dev-1.3.2 updated: Result csv download export support custom separator (#4300)

This is an automated email from the ASF dual-hosted git repository.

peacewong pushed a commit to branch dev-1.3.2
in repository https://gitbox.apache.org/repos/asf/linkis.git


The following commit(s) were added to refs/heads/dev-1.3.2 by this push:
     new 72e91f5cc Result csv  download export support custom separator (#4300)
72e91f5cc is described below

commit 72e91f5cc8efb36c9d59b903377da75872d1bdad
Author: Casion <ca...@gmail.com>
AuthorDate: Mon Mar 6 11:40:37 2023 +0800

    Result csv  download export support custom separator (#4300)
    
    * support custom separator
    
    * Result csv download export support custom separator
---
 .../org/apache/linkis/storage/csv/StorageCSVWriter.scala     |  5 ++++-
 .../apache/linkis/filesystem/restful/api/FsRestfulApi.java   | 12 +++++++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/csv/StorageCSVWriter.scala b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/csv/StorageCSVWriter.scala
index 5fa9cde25..f9b811b6a 100644
--- a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/csv/StorageCSVWriter.scala
+++ b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/csv/StorageCSVWriter.scala
@@ -36,7 +36,7 @@ class StorageCSVWriter(
     with Logging {
 
   private val delimiter = separator match {
-    case "," => ','
+    case separ if StringUtils.isNotEmpty(separ) => separ
     case _ => '\t'
   }
 
@@ -58,6 +58,9 @@ class StorageCSVWriter(
         } else v
       }
     }
+    if (logger.isDebugEnabled()) {
+      logger.debug("delimiter:" + delimiter.toString)
+    }
 
     row.map(x => decorateValue(x)).toList.mkString(delimiter.toString) + "\n"
   }
diff --git a/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java b/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
index 91a8323db..dd6957308 100644
--- a/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
+++ b/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
@@ -692,6 +692,7 @@ public class FsRestfulApi {
       @RequestParam(value = "charset", defaultValue = "utf-8") String charset,
       @RequestParam(value = "outputFileType", defaultValue = "csv") String outputFileType,
       @RequestParam(value = "csvSeperator", defaultValue = ",") String csvSeperator,
+      @RequestParam(value = "csvSeparator", defaultValue = ",") String csvSeparator,
       @RequestParam(value = "quoteRetouchEnable", required = false) boolean quoteRetouchEnable,
       @RequestParam(value = "outputFileName", defaultValue = "downloadResultset")
           String outputFileName,
@@ -704,6 +705,15 @@ public class FsRestfulApi {
     FsWriter fsWriter = null;
     PrintWriter writer = null;
     FileSource fileSource = null;
+    if (csvSeparator.equals(",") && !csvSeperator.equals(",")) {
+      csvSeparator = csvSeperator;
+    }
+    LOGGER.info(
+        "resultsetToExcel with outputFileType:{}, csvSeparator:{}, quoteRetouchEnable:{}, charset:{}",
+        outputFileType,
+        csvSeparator,
+        quoteRetouchEnable,
+        charset);
     try {
       String userName = ModuleUserUtils.getOperationUser(req, "resultsetToExcel " + path);
       FsPath fsPath = new FsPath(path);
@@ -737,7 +747,7 @@ public class FsRestfulApi {
         case "csv":
           if (FileSource$.MODULE$.isTableResultSet(fileSource)) {
             fsWriter =
-                CSVFsWriter.getCSVFSWriter(charset, csvSeperator, quoteRetouchEnable, outputStream);
+                CSVFsWriter.getCSVFSWriter(charset, csvSeparator, quoteRetouchEnable, outputStream);
           } else {
             fsWriter =
                 ScriptFsWriter.getScriptFsWriter(new FsPath(outputFileType), charset, outputStream);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org