一.读取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/java20130723/archive/2012/12/16/3211492.html

.NET操作Excel相关推荐

  1. ASP操作Excel技术总结

    目录  一. 环境配置  二. ASP对Excel的基本操作  三. ASP操作Excel生成数据表  四. ASP操作Excel生成Chart图  五. 服务器端Excel文件浏览.下载.删除方案  ...

  2. C#操作Excel文件(转)

    摘要:本文介绍了Excel对象.C#中的受管代码和非受管代码,并介绍了COM组件在.net环境中的使用. 关键词:受管代码:非受管代码:Excel对象:动态连接库 引言 Excel是微软公司办公自动化 ...

  3. php删除excel文件,php操作excel文件的方法小结

    php操作excel文件的方法小结 php操作excel文件的方法有哪些?就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网! 一.php,不用COM,生成excel文件 ...

  4. php 设置excel格式,php 操作excel文件的方法小结

    用php生成excel文件的方法,单独就是用的php,注意一下数据的输入方法即可. 一.php,不用COM,生成excel文件 header("Content-type:applicatio ...

  5. 【MFC/C++操作Excel】Excel篇 (OLE/COM)

    MFC操作Excel 下面的操作基于Excel2003 一.初始化操作 1.导入类库 点击查看->建立类向导-> Add Class...\From a type Library...-& ...

  6. VC操作EXCEL(1)

    Excel 为发人员提供了强大的外部接口,方便开发人员进行二次开发.最近笔者就采用 excel 的 automation 技术成功地解决了 excel 报表的自动生成功能. 首先给大家介绍一下报表创建 ...

  7. PB 操作EXCEL表的方法

    1.创建execl对象 eole=CREATEOBJECT("Excel.application")  2.添加新工作簿  eole.Workbooks.add  3.设置第3个工 ...

  8. c#如何操作excel??

           登 录..      [注 册]      忘记密码      注销登录 <script>document.write('');</script> csdn.ne ...

  9. python excel操作单元格_python 操作excel表格的方法

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

最新文章

  1. 1m网速是什么意思,1m带宽是什么意思
  2. 使用OpenCV进行直播(附代码)
  3. vue是什么_什么是VUE?vue有什么作用?
  4. San CLI 4.0 升级指南
  5. [读书笔记]My Life--Bill Clinton
  6. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(二)ActionSheet视图 学习笔记...
  7. jggrid 设置了自适应宽度仍然有滚动条的问题
  8. windows 服务实现定时任务调度(Quartz.Net)
  9. 什么是灰度发布?灰度发布方式 系统的割接 灰度部署典型的框架架构
  10. Django可扩展吗? [关闭]
  11. 2021-06-24边框塌陷解决方案
  12. 数字签名和数字证书 流程图 (一目了然)
  13. 硬盘出错,导致文件坏了
  14. oracle中插入图片,在Oracle数据库的表中插入图片的方法
  15. 深度学习之反向传播推导
  16. 一些文字游戏....
  17. python三维曲面合并_绘制多面体的三维曲面
  18. 贝壳DMP平台建设实践
  19. r1音箱原生系统更改服务器,低门槛不破坏R1功能改AUX音源电脑喇叭[已更新完整]...
  20. java8 日期和时间

热门文章

  1. Matrix PKU 2155
  2. SKYLINE UVALive - 4108
  3. 3224: Tyvj 1728 普通平衡树
  4. [LeetCode] 547. Friend Circles Java
  5. (剑指Offer)面试题5:从尾到头打印链表
  6. 50个jQuery代码段帮你成为更出色的JS开发者
  7. Linux编程简介——VI
  8. 技巧:在 C/C++中如何构造通用的对象链表
  9. Linq(03)基础之Orderby group-by
  10. java设计模式在项目中的使用_SpringMVC项目里,有必要使用一些设计模式吗?