.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();
         } 
     }
 }

 

转载于:https://www.cnblogs.com/grax/p/3613846.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Free Spire.XLS for .NET 是 Spire.XLS for .NET 的免费版本,无需购买即可用于个人或商业用途。使用 Free Spire.XLS for .NET,开发人员可以在 .NET 应用程序中快速对 Excel 文档进行各种编程操作,如根据模板创建新的 Excel 文档,编辑现有 Excel 文档以及对 Excel 文档进行转换等。Free Spire.XLS for .NET 是 Spire.XLS for .NET 的免费版本,无需购买即可用于个人或商业用途。使用 Free Spire.XLS for .NET,开发人员可以在 .NET 应用程序中快速对 Excel 文档进行各种编程操作,如根据模板创建新的 Excel 文档,编辑现有 Excel 文档以及对 Excel 文档进行转换等。 主要功能如下: 1.100% 独立的 .NET 组件,无需 Microsoft Office Automation 2.强大的,高质量的 Excel 文件转换功能。支持将 Excel 文档快速高效地转换为多种常见的格式,如 XML,Text,PDF 和图片等。 3.使用全面的工作簿设计器创建 Excel 报表。支持开发人员新建 Excel 工作簿,从文件流或文件夹加载工作簿。还可以将工作薄保存到磁盘, 文件流或 Web Response,同时提供了多种安全功能,包括 Excel 加密/解密,单元格隐藏/取消隐藏,工作表锁定/解锁。 4.自由操作工作表。允许开发人员使用 C#、VB.NET 或 ASP.NET 来创建、添加、删除、重命名、编辑和移动工作表,开发人员还可以在多个充满数据的工作表之间进行复制、调换和合并操作。这个专业的 .NET Excel 类库嵌入了很多灵活显示工作表的选项,包括分页符,缩放设置,冻结窗口,页眉/页脚,打印 Excel 文件,打印页面尺寸和打印区域等。 5.在运行时轻松操作单元格和 Excel 计算引擎。开发人员可以在运行时使用 C#、VB.NET 或 ASP.NET 轻松地操作 Excel 单元格,计算公式值。该高速、可扩展的 Excel 计算引擎与 Excel 97-2003/2007/2010 等兼容。同时该组件支持设置单元格样式,如单元格的合并/拆分,文字环绕/取消环绕,文本排列和旋转、边框、锁定/解除等。字体格式,如设置字体类型、大小、颜色、粗体、斜体、删除线、下划线等等。条件格式,文本搜索和替换,过滤和数据验证等操作都可以轻松的应用到单元格中。 6.图表、数据和其它元素。提供了一组丰富的图表,如饼状图,条形图,柱形图,折线图和雷达图等。此外,它支持使用 C#、VB.NET 或 ASP.NET数据库Excel 之间进行数据传输,支持超链接和模板,支持创建和获取数据透视表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值