ASP.NET中的Excel操作(OLEDB方式)

一:OLEDB方式操作Excel的个人理解

就是把要操作的Excel当作一个数据库,所有对Excel的操作,就变成了对“数据库”的操作。那么这时就需要有一个数据库的连接字符串。

代码如下:

connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + strFileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES\"“;

其中的strFileName是指的Excel文件名称。

二:读取Excel文件,并将内容读到DataTable中。

代码如下:

/// <summary>
        /// 读取Excel
        /// </summary>
        /// <param name="strFileName">Excel文件名</param>
        /// <param name="fileType"></param>
        /// <param name="sheetName">Excel中的sheet的名字</param>
        public static DataTable ExcelReader(string strFileName, string fileType, string sheetName)
        {
            string connStr = "";
            DataTable _table;
                connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + strFileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES\"";
            try
            {
                using (OleDbConnection conn = new OleDbConnection(connStr))
                {
                    conn.Open();
                    OleDbDataAdapter myCommand = new OleDbDataAdapter(string.Format("SELECT * FROM [{0}$]", sheetName), conn);

                    DataSet myDataSet = new DataSet();

                    int i = myCommand.Fill(myDataSet);

                    _table = myDataSet == null ? null : myDataSet.Tables.Count == 0 ? null : myDataSet.Tables[0];
                }
                return _table;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

返回的结果就是一个DataTable.
三:将DataTable保存为Excel文件

代码如下:

        /// <summary>
        /// 从DataTable中读取数据到excel中
        /// </summary>
        /// <param name="dt">传入的DataTable</param>
        public static void DTToExcel(DataTable dt)
        {
            string fileName = ((string.IsNullOrEmpty(dt.TableName)) ? "Excel" : dt.TableName) + ".xls";
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
            HttpContext.Current.Response.Charset = "UTF-8";
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
            HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
            GridView GridView1 = new GridView();
            GridView1.DataSource = dt;
            GridView1.DataBind();
            StringWriter tw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(tw);
            GridView1.RenderControl(hw);
            HttpContext.Current.Response.Write(tw.ToString());
            HttpContext.Current.Response.End();
        }

 在使用DataTable导出Excel文件时,需要先创建DataTable,下面是DataTable的创建小实例:

            DataTable dt = new DataTable();
            string[] strArr = new string[]
            {
                            "1",
                            "2222",
                            "333333333",
                            "444"
            };
            for (int i = 0; i < strArr.Count(); i++)
            {
                dt.Columns.Add(strArr[i]);
            }
            for (int i = 0; i < strArr.Count(); i++)
            {
                DataRow dr2 = dt.NewRow();
                dr2[0] = "总记";
                dr2[1] = "11";
                dr2[2] = "22";
                dr2[3] = "33";
                dt.Rows.Add(dr2);
           }
            
时间: 2024-11-05 13:47:49

ASP.NET中的Excel操作(OLEDB方式)的相关文章

ASP.NET中的Excel操作(NPOI方式)

代码准备: 一:实体准备 代码如下: /// <summary> /// 一个能添加到将要导出到指定行的实体类型规范 /// data:{int StartColIndex ? 0, int ColSpan, object Value, bool Center} /// </summary> public interface IExcelModel { /// <summary> /// 开始列的索引(即使是有合并单元格的情况,也得按未合并单元格时算) /// <

ASP.NET中读取excel内容并显示

项目中经常会用到把excel的文件内容导入到数据库中的,刚刚花了点时间,做了个例子,基本上能实现导入Excel后显示的功能吧,导入的excel文件得是xls,即是2003的.     代码思路如下:要读取的excel文件必得得是在本地硬盘,所以一般来说都是让远程用户选择自己硬盘上的Excel文件,然后把用户选择的文件上传到本地服务器上,再在本地服务器上进行操作.我把界面后置代码重要部分贴出来,大家自己慢慢看吧,都有注释了. C#代码   // 上传按钮 protected void btnUp_

在ASP程序中打印Excel报表的新方法

目前,B/S模式(浏览器/服务器模式)成为企业网上首选的计算模式.由于B/S模式的特殊性,在C/S下相对较易实现的Excel报表打印功能在B/S下却成为一个难点.本人通过研究写了一个基于ASP程序的打印Excel报表的程序.本程序的特点是无须任何组件. Print.asp ------------------------------------------------ <html><title>打印Excel报表</title> <% '控制脚本语言 respon

ASP.net中导出Excel的简单方法介绍

下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat="server" style="width: 700px; margin-left: auto; margin-right: auto;"> <!--startprint--> <table width="100%" border=&

ASP.net 中手工调用WS(POST方式)

ASP.net 中手工调用WS(POST方式)核心代码:string strUrl="http://localhost:21695/service1.asmx/getmythmod";HttpWebRequest request=(HttpWebRequest)WebRequest.Create(strUrl);request.Method="POST";request.ContentType="application/x-www-form-url&quo

Asp.net中导出Excel文档(Gridview)

主要思路,通过GridView来导出文档. 新建一个Aspx页面,页面创建GridView控件,后台绑定好数据源.然后load中直接打印即可导出 前台的GridView <asp:GridView ID="GridView1" BorderColor="Black" runat="server" AutoGenerateColumns="False" Font-Size="12px" Width=&q

报表中的Excel操作之Aspose.Cells(Excel模板)

本文转载:http://www.cnblogs.com/whitewolf/archive/2011/03/21/Aspose_Cells_Template1.html 报表中的Excel操作之Aspose.Cells(Excel模板)

Asp.Net中Word,Excel等office com组件操作权限的问题

近日在打开原来写的一个网页程序运行时,出现了Excel操作权限的问题,具体的说就是在代码中调用下面这段与Excel操作有关的语句时, Application curExcelApp = new ApplicationClass(); 提示权限不足,具体的提示内容如下: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005. 说明: 执行当前 Web 请求期间,出现未处理的异常.请

C#中的Excel操作【1】——设置Excel单元格的内容,打开Excel文件的一种方式

前言 作为项目管理大队中的一员,在公司里面接触最多的就是Excel文件了,所以一开始就想从Excel入手,学习简单的二次开发,开始自己的编程之路! 程序界面 功能说明 打开文件按钮,可以由使用者指定要操作的Excel文件,并在后面的textBox中显示出文件路径. 设置单元格按钮,可以根据程序设置Excel文件的内容. 退出程序按钮,关闭窗体. 程序源代码 1 using System; 2 using System.Collections.Generic; 3 using System.Com