From 9046a1279f3240193e519efdeadb7d680f0590df Mon Sep 17 00:00:00 2001
From: kyy <3283105747@qq.com>
Date: 星期四, 23 十月 2025 14:36:28 +0800
Subject: [PATCH] 1、导出xls优化

---
 WebApi/Gs.Report/XlsInOutController.cs |   72 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 0 deletions(-)

diff --git a/WebApi/Gs.Report/XlsInOutController.cs b/WebApi/Gs.Report/XlsInOutController.cs
index 850578e..fbee2cb 100644
--- a/WebApi/Gs.Report/XlsInOutController.cs
+++ b/WebApi/Gs.Report/XlsInOutController.cs
@@ -89,6 +89,78 @@
         }
     }
 
+
+    /// <summary>
+    ///瀵煎嚭xls锛屽姩鎬佽В鏋愬瓨鍌ㄨ繃绋嬪弬鏁�
+    /// </summary>
+    /// <param name="mode"></param>
+    /// <returns></returns>
+
+    [RequestMethod(RequestMethods.POST)]
+    public ReturnDto<ExpandoObject> XlsOutView_NEW([FromBody] dynamic mode)
+    {
+        string rptParameter = mode.outParameter;
+        var paramDict = new Dictionary<string, object>();
+        // 鍔ㄦ�佽В鏋愬弬鏁�
+        if (mode.outParams != null)
+        {
+            foreach (var prop in mode.outParams)
+            {
+                string name = prop.Name;
+                object value = prop.Value;
+                paramDict.Add(name, value);
+            }
+        }
+        var _pdfFloder = AppSettingsHelper.getValueByKey("DownPath");
+        var _pdfName = Guid.NewGuid() + ".xls";
+        var _pdfSaveFolder = Path.Combine(AppContext.BaseDirectory, _pdfFloder);
+        if (!Directory.Exists(_pdfSaveFolder))
+            Directory.CreateDirectory(_pdfSaveFolder);
+        var pdfSavePath = Path.Combine(_pdfSaveFolder, _pdfName);
+        dynamic m = new ExpandoObject();
+        try
+        {
+            var dset = RunProcedure(rptParameter, paramDict);
+            if (dset == null || dset.Tables.Count <= 0)
+                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, "娌℃湁鏌ヨ鍒颁换浣曟暟鎹�");
+            var ary = new ArrayList();
+            ExcelHelper.ExportAryHead(dset.Tables[0], ary, pdfSavePath);
+            m.fileUrl = "down/" + _pdfName;
+            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "璇诲彇鎴愬姛锛�");
+        }
+        catch (Exception ex)
+        {
+            LogHelper.Debug(ToString(), ex.Message);
+            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Exception, "璇诲彇澶辫触," + ex.Message);
+        }
+    }
+
+
+    /// <summary>
+    /// 閫氱敤瀛樺偍杩囩▼鎵ц鏂规硶
+    /// </summary>
+    private DataSet RunProcedure(string procName, IDictionary<string, object> paramDict)
+    {
+        var dset = new DataSet();
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            using (var comm = new SqlCommand(procName, conn))
+            {
+                comm.CommandType = CommandType.StoredProcedure;
+                // 鍔ㄦ�佹坊鍔犲弬鏁�
+                foreach (var kvp in paramDict)
+                {
+                    comm.Parameters.AddWithValue("@" + kvp.Key, kvp.Value == null ? DBNull.Value : kvp.Value.ToString());
+                }
+                using (var adapter = new SqlDataAdapter(comm))
+                {
+                    adapter.Fill(dset, "0");
+                }
+            }
+        }
+        return dset;
+    }
+
     /// <summary>
     ///     鏍规嵁鍙傛暟璇诲彇瀛樺偍杩囩▼鍚嶇О
     /// </summary>

--
Gitblit v1.9.3