C# DataTable导出Excel 帮助方法

public JsonResult DataTableSqlDataExportToCSV(string sql)

        {

           try

            {

               #region 获取数据

                DataTable dt = impl.GetDataTableSql(sql);

               #endregion

 

               string dir = Server.MapPath("~/Content/TempFile");

               if (Directory.Exists(dir) == false)

                {

                    Directory.CreateDirectory(dir);

                }

               string fileName = DateTime.Now.Year + "-" + DateTime.Now.Month + "report" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";

               string path = dir + "\\" + fileName;

                CSVHelper.DataToCsv(dt, path);

               return Json(new { msg = "导出成功", result = true, data = "/Content/TempFile/" + fileName }, JsonRequestBehavior.AllowGet);

            }

           catch (Exception ex)

            {

               return Json(new { msg = "导出失败:" + ex.Message, result = false, data = "" }, JsonRequestBehavior.AllowGet);

            }

        }

 

 

 

 

 

using System;

using System.Collections.Generic;

using System.Data;

using System.IO;

using System.Linq;

using System.Text;

using System.Web;

 

namespace aZaaS.KStar.Web.Areas.DSFA.Other

{

   public class CSVHelper

    {

       public static void DataToCsv(DataTable dt, string strName)

        {

           string strPath = strName;

           if (File.Exists(strPath))

            {

                File.Delete(strPath);

            }

 

            StringBuilder strColu = new StringBuilder();

            StringBuilder strValue = new StringBuilder();

           int i = 0;

 

            StreamWriter sw = new StreamWriter(new FileStream(strPath, FileMode.CreateNew), Encoding.GetEncoding("UTF-8"));

           先打印表头

           for (i = 0; i <= dt.Columns.Count - 1; i++)

            {

                strColu.Append(dt.Columns[i].ColumnName);

                strColu.Append(",");

            }

            strColu.Remove(strColu.Length - 1, 1);//移除掉最后一个,字符

            sw.WriteLine(strColu);

           //再逐行打印行数据

           foreach (DataRow dr in dt.Rows)

            {

                strValue.Remove(0, strValue.Length);//清空遗留数据

               for (i = 0; i <= dt.Columns.Count - 1; i++)

                {

                    strValue.Append(dr[i].ToString().Replace(",", ";"));

                    strValue.Append(",");

                }

                strValue.Remove(strValue.Length - 1, 1);//移除掉最后一个,字符

                sw.WriteLine(strValue);

            }

            sw.Close();

 

        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值