• 本文介绍下,C#实现的可以导出与导入excel的代码一例,有需要的朋友,参考下吧。

      C#实现导出与导入excel。
      代码1:
       
      复制代码 代码示例:
      #region  导出Excel  
      /// <summary>  
      /// 导出Excel  
      /// </summary>  
      /// <param name="page">请求的页面this</param>  
      /// <param name="dataTable">导出的数据源</param>  
      /// <param name="fileName">保存文件名称</param>  
      /// <returns>布尔值</returns>  
      public bool ExportExcel(Page page, DataTable dataTable, string fileName)  
      {  
          try  
          {  
              HttpContext.Current.Response.Clear();  
              HttpContext.Current.Response.Buffer = true;  
              HttpContext.Current.Response.ContentType = "application/vnd.ms-excel.numberformat:@";  
              page.EnableViewState = false;  
              HttpContext.Current.Response.Charset = "UTF-8";  
              HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//设置输出流为简体中文  
              HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");  
              //输出列名  
              for (int i = 0; i < dataTable.Columns.Count; i++)  
                HttpContext.Current.Response.Write(dataTable.Columns[i].ColumnName + "\t");  
                HttpContext.Current.Response.Write("\r\n");  
                //输出数据  
              for (int i = 0; i < dataTable.Rows.Count; i++)  
              {  
      for (int j = 0; j < dataTable.Columns.Count; j++)  
      {  
          HttpContext.Current.Response.Write(dataTable.Rows[i][j].ToString() + "\t");  
      }  
      HttpContext.Current.Response.Write("\r\n");  
              }  
              //输出当前缓存内容  
              //HttpContext.Current.Response.Flush();  
              HttpContext.Current.Response.End();  
              return true;  
          }  
          catch  
          {  
              return false;  
          }  
      }  
      #endregion

      代码2
       
      代码示例:
      #region 导出Excel 自定义格式  
      /// <summary>  
      /// 导出Excel    
      /// 1.文本:vnd.ms-excel.numberformat:@  
      /// 2.日期:vnd.ms-excel.numberformat:yyyy/mm/dd  
      /// 3.数字:vnd.ms-excel.numberformat:#,##0.00  
      /// 4.货币:vnd.ms-excel.numberformat:¥#,##0.00  
      /// 5.百分比:vnd.ms-excel.numberformat: #0.00%  
      /// </summary>  
      /// <param name="fileName"></param>  
      /// <param name="dt"></param>  
      /// <returns></returns>  
      public bool Export(string fileName, DataTable dt)  
      {  
         try  
         {  
             HttpResponse resp;  
             resp = System.Web.HttpContext.Current.Response;  
             resp.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");  
             resp.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");  
             resp.AppendHeader("Content-Type", "application/ms-excel");  
            
             StringBuilder colHeaders = new StringBuilder();  
             StringBuilder ls_item = new StringBuilder();  
             DataRow[] myRow = dt.Select();  
             int cl = dt.Columns.Count;  
            
             colHeaders.Append(" <html><head> \n ");  
             colHeaders.Append(" <meta http-equiv='Content-Type' content='text/html; charset=gb2312' /> \n ");  
             colHeaders.Append(" </head> \n ");  
             colHeaders.Append(" <body> \n ");  
             colHeaders.Append(" <table border='1'> ");  
             colHeaders.Append(" <tr> ");  
             //输出列名  
             for (int i = 0; i < dt.Columns.Count; i++)  
      colHeaders.Append("<td  style='background-color:#CCCCCC'>" + dt.Columns[i].ColumnName + "</td>");  
             colHeaders.Append("</tr> ");  
             resp.Write(colHeaders.ToString());  
             foreach (DataRow row in myRow)  
             {  
      ls_item.Append("<tr>");  
      for (int i = 0; i < cl; i++)  
      {  
         if (i == (cl - 1))  
         {  
             ls_item.Append("<td style='vnd.ms-excel.numberformat:@ '>" + row[i].ToString() + "</td>" + "\n");  
         }  
         else  
         {  
             ls_item.Append("<td style= 'vnd.ms-excel.numberformat:@ '>" + row[i].ToString() + "</td>");  
         }  
      }  
      ls_item.Append("</tr>");  
             }  
             ls_item.Append(" </table> \n ");  
             ls_item.Append(" </body> \n ");  
             ls_item.Append(" </html>");  
             resp.Write(ls_item.ToString());  
             resp.End();  
             return true;  
         }  
         catch  
         {  
             return false;  
         }  
      }  
      #endregion 
      代码3
       
      代码示例:
      #region 导入Excel  
      public string ImportExcel(string[] list, string filePath)  
      {  
              string isXls = System.IO.Path.GetExtension(filePath).ToLower(); //System.IO.Path.GetExtension获得文件的扩展名  
              if (isXls != ".xls")  
              return "请选择Excel文件导入!";  
              DataSet ds = ExecleDataSet(filePath); //调用自定义方法  
              DataRow[] dr = ds.Tables[0].Select(); //定义一个DataRow数组  
              int rowsnum = ds.Tables[0].Rows.Count;  
              if (ds.Tables[0].Rows.Count == 0)  
              return "Excel无数据!";  
              return "";  
          }  
            
          //OleDB连接读取Excel中数据  
          public DataSet ExecleDataSet(string filePath)  
          {  
              string OleDbConnection = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filePath + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";  
              OleDbConnection conn = new OleDbConnection(OleDbConnection);  
              conn.Open();  
              DataSet ds = new DataSet();  
              OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);  
              odda.Fill(ds);  
              conn.Close();  
              return ds;  
      }  
      #endregion

    • 转载自:http://www.hello-code.com/blog/asp.net/201401/2645.html

ASP.NET导入导出Excel方法大全的更多相关文章

  1. .NET导入导出Excel方法总结

    最近,应项目的需求,需要实现Excel的导入导出功能,对于Web架构的Excel导入导出功能,比较传统的实现方式是: 1)导入Excel:将Excel文件上传到服务器的某一文件夹下,然后在服务端完成E ...

  2. PHP导入导出Excel方法

    看到这篇文章的时候,很是惊讶原作者的耐心,虽然我们在平时用的也 有一些,但没有作者列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xm ...

  3. c# 导入导出excel方法封装

    在很多项目中,都会使用到文件的上传下载等,为了方便,封装了一个帮助类,每次直接拿过来使用就可以了,下面是封装的类和使用方法. using Common.AttributeHelper; using N ...

  4. PHP导入导出Excel方法小结

    基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...

  5. ASP.NET常用导出Excel方法汇总

    本文转载:http://mattberseth.com/blog/2007/04/export_gridview_to_excel_1.html http://geekswithblogs.net/a ...

  6. asp.net中导出Excel的方法

    一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...

  7. ASP.NET Core导入导出Excel文件

    ASP.NET Core导入导出Excel文件 希望在ASP.NET Core中导入导出Excel文件,在网上搜了一遍,基本都是使用EPPlus插件,EPPlus挺好用,但商用需要授权,各位码友若有好 ...

  8. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

  9. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...

随机推荐

  1. WIN10局域网共享,经常出现无法访问的现象的解决方法

    WIN10的局域网共享是真操蛋啊,用着好好的,重启了一下,突然就不好用了,其他人无法访问我的电脑,百度了半天也没有找到能解决的访问,文章中说的都试过了,该开启的也都开启了,防火墙也关了,没用,后来想着 ...

  2. vs 2017 保存文件 utf8

    vs 2017 保存文件 utf8 转自:https://blog.csdn.net/jiegemena/article/details/79369650

  3. Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache

    1.事件描述:CentOS7下使用tree命令,发现该命令没有被安装,在安装的过程中发现yum报错 1 2 3 4 5 [root@openstack-01 ~]# tree -d bash: tre ...

  4. CUDA JPEG编码

    基于英伟达的jpegNPP工程,分离实现独立的JPEG压缩. 由于原工程是直接把解码时的jpeg图片的信息直接作为编码时的信息,所以在做独立的JPEG编码时,需要自己来填充各种信息. 1.JPEG编码 ...

  5. HDU 4750 Count The Pairs ★(图+并查集+树状数组)

    题意 给定一个无向图(N<=10000, E<=500000),定义f[s,t]表示从s到t经过的每条路径中最长的边的最小值.Q个询问,每个询问一个t,问有多少对(s, t)使得f[s, ...

  6. Xshell高级后门完整分析报告(ZT)

    1. 前言 近日,Xshell官方发布公告称其软件中存在后门.我们的实习生同学对该后门进行了详细的分析,确认这是一个具备恶意代码下载执行和数据回传等能力的高级木马. 后门代码存在于nssock2.dl ...

  7. rsync的服务端和客户端搭建

    首先要看看有没有rsync,没有就按装一个rsync 1配置文件 然后创建rsyncd.conf文件,并添加如下内容(文件默认不存在) [root@chensiqi2 backup]# cat /et ...

  8. Sumlime text3 安装包、汉化包、注册码

    Sumlime text3 安装包.汉化包.注册码 http://files.cnblogs.com/files/panmy/%E5%9C%86%E8%A7%92.rar

  9. RabbitMQ(5) 事务&生产者确认

    事务&生产者确认 一般情况下,生产者将消息发送后,继续进行别的业务逻辑处理.消息从生产者发送后,可能由于网络原因丢失,也可能因为RabbitMQ服务端奔溃未被处理...总之,对于 消息是否安全 ...

  10. js 验证对象是否为数组

    一.方法一:用到了原型 由于typeof检测数组,只会显示其为object,并不会详细到告诉我们是否为array,所以我们可以自己写个js用原型来检测: <script> /** * * ...