WEB开发网
开发学院软件开发C语言 C# 操作Excel之旁门左道 [ C# | Excel ] 阅读

C# 操作Excel之旁门左道 [ C# | Excel ]

 2009-05-25 08:29:10 来源:WEB开发网   
核心提示: 3.2后台调取数据,导成excel并下载这里就不连接数据库了,C# 操作Excel之旁门左道 [ C# | Excel ](4),直接在程序里面模拟一些数据,protectedvoidPage_Load(objectsender,EventArgse){this.EnableViewSta

3.2  后台调取数据,导成excel并下载

这里就不连接数据库了,直接在程序里面模拟一些数据。

    protected void Page_Load(object sender, EventArgs e)
    {
        this.EnableViewState = false;

        //加载数据
        LoadData();

        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "GB2312";
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("学生成绩表.xls", System.Text.Encoding.UTF8));
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        Response.ContentType = "application/ms-excel";
        //Response.End();
    }

    private void LoadData()
    {
        IList<User> users = new List<User>();

        //测试数据
        users.Add(new User(1, "刘一", 81));
        users.Add(new User(2, "陈二", 82));
        users.Add(new User(3, "张三", 83));
        users.Add(new User(4, "李四", 84));
        users.Add(new User(5, "王五", 85));
        users.Add(new User(6, "赵六", 86));
        users.Add(new User(7, "孙七", 87));
        users.Add(new User(8, "周八", 88));
        users.Add(new User(9, "吴九", 89));
        users.Add(new User(10, "郑十", 80));

        rptData.DataSource = users;
        rptData.DataBind();
    }

    [Serializable]
    private class User
    {

        public User()
        {
        }
        public User(int id, string name, decimal achievement)
        {
            this._id = id;
            this._name = name;
            this._achievement = achievement;
        }
        private int _id;
        /// <summary>
        ///  编号
        /// </summary>
        public int id
        {
            get { return _id; }
            set { _id = value; }
        }
        private string _name;
        /// <summary>
        /// 姓名
        /// </summary>
        public string name
        {
            get { return _name; }
            set { _name = value; }
        }
        private decimal _achievement;
        /// <summary>
        /// 成绩
        /// </summary>
        public decimal achievement
        {
            get { return _achievement; }
            set { _achievement = value; }
        }
    }

代码说明:

Page_Load中依次加载数据,然后以ms-excel类型讲web浏览变成excel文件下载。

3.3  导出后的excel截图

3.3.1  下载

C# 操作Excel之旁门左道 [ C# | Excel ] 

3.3.2  修改锁定的三列截图

C# 操作Excel之旁门左道 [ C# | Excel ]

图片看不清楚?请点击这里查看原图(大图)。

很明显,动态输出表格是我们擅长的,也不用你去翻N多N多的API了,最重要的是这里没有Excel进程!

三、下载

四、注意

1.  下载回来的excel如果直接在上面操作的话可能产生 [excel名称].files 文件夹。

结束

解决一个问题尽量多想多了解多找一些方案和方法,比较各个方案的优缺点,再选一种适合自己实际情况的来实现。

上一页  1 2 3 4 

Tags:操作 Excel 旁门左道

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接