C#寫入Excel文件方式


由於在工作中經常要把數據庫的統計數據導入Excel文件,進行IO磁盤操作,所以在這里記錄下。

首先創建默認文件夾,並返回文件夾路徑。

 private static string CPath(string path)
        {
            var index = path.LastIndexOf("/");
            var temp = path.Substring(0, index);
            if (!Directory.Exists(temp))//如果不存在就創建file文件夾                               
                Directory.CreateDirectory(temp);//創建該文件夾    
            return path;

        }

寫入數據。

   using (var s = new System.IO.StreamWriter(CPath("./測試.csv"), true, Encoding.GetEncoding("GB2312"), 30))
                {
                    s.WriteLine($"{"列1"},{"列2"}");
                    foreach (var item in list)
                    {
                        s.WriteLine($"{item.Column},{item.Column1}");
                    }
                }

另外我們在WebAPI項目中也經常要導出數據,這種方式在這里也記錄下。

/// <summary>
        /// 導出Excel
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("api/test")]
        public HttpResponseMessage TestExport()
        {
            var csv = new StringBuilder();
            csv.AppendLine($"{"列1"},{"列2"}");
            foreach (var item in list)
            {
                csv.AppendLine($"{item.Column},{item.Column1}");
            }

            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
            response.Content = new ByteArrayContent(Encoding.GetEncoding("gbk").GetBytes(csv.ToString()));
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-csv");
            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = string.Format(@"測試{0}.csv", string.Format("{0:G}", DateTime.Now)),
            };
            return response;
        }

當然了,導出的方式有很多種,這只是其中比較簡單的一種。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM