ibcadmin 发表于 2013-6-1 08:32:57

C#.Net导出Excel源码

using System;
using System.Collections.Generic;
using System.Web;
using System.Data;

namespace ZOA
{
    public class ExportExcel
    {
      public ExportExcel()
      {
            //
            //TODO: 在此处添加构造函数逻辑
            //
      }

      publicvoid ToExcel(DataTable p_Table, HttpResponse p_Response, string p_Title)
      {
            int _CountR = p_Table.Rows.Count;//行数
            int _CountC = p_Table.Columns.Count;//列数
            p_Response.Clear();
            p_Response.Buffer = true;

            //设置Http的头信息,编码格式
            p_Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(p_Title) + ".xls");
            p_Response.ContentType = "application/ms-excel";

            //设置编码
            p_Response.Charset = "GB2312";
            p_Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

            //写表头
            for (int i = 0; i < _CountC; i++)
            {
                p_Response.Write(p_Table.Columns.ColumnName + "\t");
            }
            p_Response.Write("\n");

            //写表内容
            for (int RowNo = 0; RowNo <= _CountR - 1; RowNo++)
            {
                string RowContent = "";
                string _Content = string.Empty;
                for (int CloumnNo = 0; CloumnNo <= _CountC - 1; CloumnNo++)
                {
                  _Content = Convert.ToString(p_Table.Rows);
                  if (_Content == "1900-1-1 0:00:00")
                  {
                        _Content = "";
                  }
                  if (_Content.Contains("\n") == true)
                  {
                        _Content = _Content.Replace("\n", "");
                  }
                  if (_Content.Contains("\r") == true)
                  {
                        _Content = _Content.Replace("\r", "");
                  }
                  if (_Content.Contains("\t") == true)
                  {
                        _Content = _Content.Replace("\t", "");
                  }

                  RowContent += _Content + " \t";
                }
                RowContent += "\n";
                p_Response.Write(RowContent);
            }
            p_Response.End();
      }
    }
}
公司最近试用了智遥工作流软件,感觉他们的导出Excel功能,非常好用;就试着向智遥软件的顾问要了一下导出Excel源码,好留着自己开发程序使用。顾问人品好,果断给了。现贴源码出与广大网友共享。

调用方法如下:

//导出数据
    protected void BExportData_Click(object sender, EventArgs e)
    {
      ExportExcel ee = new ExportExcel();
      DataTable dt = QueryMain();
      //更改列名
      dt.Columns["workid"].ColumnName = "编号";
      dt.Columns["userid"].ColumnName = "工号";
      dt.Columns["username"].ColumnName = "姓名";
      dt.Columns["dept"].ColumnName = "部门";
      dt.Columns["position"].ColumnName = "职位";

      ee.ToExcel(dt, Response, "Report");
    }

chao2332601 发表于 2013-6-16 01:06:06

谢谢分享!!!

chao2332601 发表于 2013-6-16 01:08:11

谢谢分享!!!

11603 发表于 2013-11-27 08:19:01

谢谢楼主

TitJSY 发表于 2013-12-15 02:21:57

尊敬的楼主,你这有没有窗体应用程序,能够将excel导入数据库的代码呢?

ibcadmin 发表于 2013-12-15 15:06:23

TitJSY 发表于 2013-12-15 02:21
尊敬的楼主,你这有没有窗体应用程序,能够将excel导入数据库的代码呢?

Excel导入导出实例代码
http://www.ibcibc.com/forum.php?mod=viewthread&tid=29&fromuid=1
(出处: C#论坛-C#教程,ASP.NET教程)

夏夜的第一只萤 发表于 2014-7-9 10:51:35

谢谢分享!

kmcjx 发表于 2020-3-8 16:29:15

十分感谢
页: [1]
查看完整版本: C#.Net导出Excel源码