• .NET操作Excel


    一.读取Excel数据,并显示

    1.配置文件

    <configuration>
        <system.web>
            <compilation debug="true" targetFramework="4.0" />
        </system.web>
      <appSettings>
        <!--连接03版本的-->
        <!--<add key="SQLCONNECTIONSTRING" value="Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source="/>
        <add key="DBPATH" value="App_Data\username.xls"/>-->
       
        <!--连接07版本的-->
        <add key="SQLCONNECTIONSTRING" value="Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0 Xml;Data Source=" />
        <add key="DBPATH" value="App_Data\usernames.xlsx"/>
        <!--连接07access数据库-->
        <add key="OLEDBCONNECTIONSTRING" value="Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Access 12.0 Xml;Data Source=" />
        <!--<add key="DBPATH" value="App_Data\username.accdb"/>-->
        <!--使用.net生成Excel表格-->
        <add key="SQLCONNECTIONSTR" value="data source=.;uid=sa;pwd=123456;database=students;pooling=true"/>
      </appSettings>
    </configuration>

    2.

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

    namespace WebApplication
    {
        public partial class MyExcelToDG : System.Web.UI.Page
        {
            private readonly string SQLCONNECTIONSTRING = ConfigurationManager.AppSettings["SQLCONNECTIONSTRING"].ToString();
            private readonly string DBPATH = ConfigurationManager.AppSettings["DBPATH"].ToString();
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    GridView1.DataSource = CreateDataSource();
                    GridView1.DataBind();
                }
            }

            private DataSet CreateDataSource()
            {
                //设置Excel的文件访问地址
                String ExcelDBPath = SQLCONNECTIONSTRING + Server.MapPath(DBPATH) + ";";
                //定义访问Excel文件的连接
                OleDbConnection conn = new OleDbConnection(ExcelDBPath);
                //OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM[username$]",conn);
                OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM students", conn);
                DataSet ds = new DataSet();
                da.Fill(ds);
                return ds;
            }
        }
    }

    二.将sqlserver中的数据导出到Excel中

    using System;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;

    namespace WebApplication
    {
        public partial class MyDataToExcel : System.Web.UI.Page
        {
            private readonly string SQLCONNECTIONSTR = ConfigurationManager.AppSettings["SQLCONNECTIONSTR"].ToString();
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    //创建Excel文件

                    try
                    {
                        CreateExcelTable();
                        Response.Write("<script>alert('成功导出!')</script>");
                    }
                    catch (Exception)
                    {
                        Response.Write("<script>alert('发生错误!')</script>");
                    }
                }
            }
            //获取数据
            private DataSet GetData()
            {
                //从数据库中获取数据
                String cmdText = "Select * from Student_Info";
                using (SqlConnection conn = new SqlConnection(SQLCONNECTIONSTR))
                {
                    SqlDataAdapter da = new SqlDataAdapter(cmdText, conn);
                    conn.Open();
                    DataSet ds = new DataSet();
                    da.Fill(ds);
                    return (ds);
                }
            }

            //创建Excel文件
            private void CreateExcelTable()
            {
                //从数据库获取数据
                DataSet ds = GetData();
                //创建Excel对象
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                //设置行和列的索引
                int rowIndex = 1;
                int collndex = 0;
                //添加Excel对象的WorkBooks
                excel.Application.Workbooks.Add(true);
                System.Data.DataTable table = ds.Tables[0];
                //将所得到的表的列名,赋给单元格
                foreach (DataColumn col in table.Columns)
                {
                    //添加列名
                    collndex++;
                    excel.Cells[1, collndex] = col.ColumnName;
                }
                //同样的方法处理数据
                foreach(DataRow row in table.Rows)
                {
                    rowIndex++;
                    collndex = 0;
                    foreach (DataColumn col in table.Columns)
                    {
                        collndex++;
                        excel.Cells[rowIndex, collndex] = row[col.ColumnName].ToString();
                    }
                }
                //不可见,即后台处理
                excel.Visible = false;
                excel.DisplayAlerts = false;
                //保存刚才创建的Excel表格
                excel.Save(MapPath("App_Data/ExcelTable.xls"));
                excel.Application.Workbooks.Close();
                excel.Application.Quit();
                excel.Quit();
                //释放使用的Excel对象
                System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
                GC.Collect();
            }
        }
    }

    感谢来访,共同学习!
  • 相关阅读:
    JS经典面试题
    javascript数组(1) ——sort的工作原理及其他数组排序方法
    怎么去掉javascript 的Array的重复项
    Intellij IDEA运行Error ——Command line is too long
    angular-waring:global Angular与local Angular版本不一致问题
    idea(集成python)下载python插件失败
    PLSQL登录oracle显示无监听或协议适配器错误
    maven不能加载ojdbc6.jar的解决方法
    eclipse安装maven插件
    windows下gitbash安装教程
  • 原文地址:https://www.cnblogs.com/dingxiaowei/p/3058775.html
Copyright © 2020-2023  润新知