zoukankan      html  css  js  c++  java
  • .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();
            }
        }
    }

  • 相关阅读:
    C# 调试程序时如何输入命令行参数
    C# 连接和操作SQL SERVER数据库
    在C#中读写INI配置文件(转)
    Visual Studio 项目中添加include, lib, dll库文件(*.h,*.lib,*.dll)
    Android系统Recovery工作原理
    Windows服务创建及安装
    C# WinForm窗口最小化到系统托盘
    C#文件操作
    C# 调用Windows API实现两个进程间的通信
    Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)
  • 原文地址:https://www.cnblogs.com/java20130723/p/3211492.html
Copyright © 2011-2022 走看看