• vs.net2010 操作 Excel2003 与 Excel2007


    读取 Excel 数据

    using System.Data.OleDb;
    using System.Data;

     public void ReadExcelFiless()
            {
                //string strConn  = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Server.MapPath("ExcelFiles/MyExcelFile.xls") + ";Extended Properties=Excel 8.0";//此连接只能操作Excel2007 前的.xls 文件
                
    //string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + Server.MapPath("ExcelFiles/MyExcelFile.xls") + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; //此连接只能操作Excel2007之前(.xls)文件
                string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + Server.MapPath("ExcelFiles/Mydata2007.xlsx") + ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'"//此连接可以操作.xls与.xlsx文件

                OleDbConnection conn = new OleDbConnection(strConn);
                OleDbDataAdapter adp = new OleDbDataAdapter("Select * from [Sheet1$]", conn);
                DataSet ds = new DataSet();
                adp.Fill(ds, "Book1");
                this.GridView1.DataSource = ds.Tables["Book1"].DefaultView;
                this.GridView1.DataBind(); 
            }

     操作Excel 2007 文件时,如出现

    “未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序” 错误,则需

    http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe 下载。然后安装就行了。

    导出数据到 Excel

    using System.IO;

    protected void Button1_Click(object sender, EventArgs e)
            {
                DisableControls(GridView1);

                Response.ClearContent();

                Response.AddHeader("content-disposition""attachment; filename=MyExcelFile2011.xls");//导出Excel200, Excel2003格式
                
    //Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile2011.xlsx");//导出 Excel2007格式

                Response.ContentType = "application/excel";

                StringWriter sw = new StringWriter();

                HtmlTextWriter htw = new HtmlTextWriter(sw);

                this.GridView1.RenderControl(htw);

                Response.Write(sw.ToString());

                Response.End(); 
            }
            public override void VerifyRenderingInServerForm(Control control)
            {

            }
            private void DisableControls(Control gv)
            {

                LinkButton lb = new LinkButton();

                Literal l = new Literal();

                string name = String.Empty;

                for (int i = 0; i < gv.Controls.Count; i++)
                {

                    if (gv.Controls[i].GetType() == typeof(LinkButton))
                    {

                        l.Text = (gv.Controls[i] as LinkButton).Text;

                        gv.Controls.Remove(gv.Controls[i]);

                        gv.Controls.AddAt(i, l);

                    }

                    else if (gv.Controls[i].GetType() == typeof(DropDownList))
                    {

                        l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;

                        gv.Controls.Remove(gv.Controls[i]);

                        gv.Controls.AddAt(i, l);

                    }



                    if (gv.Controls[i].HasControls())
                    {

                        DisableControls(gv.Controls[i]);

                    }

                }

            }
  • 相关阅读:
    dd——留言板再加验证码功能
    怎样去除织梦版权信息中的Power by DedeCms
    数据结构和算法的选择
    数据结构和算法9——哈希表
    数据结构与算法8——二叉树
    数据结构与算法7——高级排序
    数据结构与算法6——递归
    数据结构和算法5——链表
    数据结构与算法4——栈和队列
    数据结构与算法3——简单排序(冒泡、选择、插入排序)
  • 原文地址:https://www.cnblogs.com/tiger8000/p/2201743.html
Copyright © 2020-2023  润新知