马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

C#.Net导出Excel源码

  [复制链接]
查看10798 | 回复11 | 2013-6-1 08:32:57 | 显示全部楼层 |阅读模式
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;

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

        public  void 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[i].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[RowNo][CloumnNo]);
                    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源码,好留着自己开发程序使用。顾问人品好,果断给了。现贴源码出与广大网友共享。

调用方法如下:

[C#] 纯文本查看 复制代码
//导出数据
    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");
    }


C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
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? ... id=29&fromuid=1
(出处: C#论坛-C#教程,ASP.NET教程)
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
谢谢分享!
kmcjx | 2020-3-8 16:29:15 | 显示全部楼层
十分感谢
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则