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_Datausername.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_Datausernames.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_Datausername.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();
             } 
         }
     }
    
  • 相关阅读:
    jstree 实现异步加载子节点
    创建 widget 窗口小组件
    Android(permission)常用权限
    Android 之 补间动画
    补间动画之 AlphaAnimation
    (转)向对象开发与面向组件开发的区别
    Android Drawable文件夹对应像素密度
    Notification(通知) 简单用法
    AlarmManager 用法
    关于IntentService 用法
  • 原文地址:https://www.cnblogs.com/grax/p/3613846.html
Copyright © 2011-2022 走看看