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 == ? null : myDataSet.Tables[];
}
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[]
{
"",
"",
"",
""
};
for (int i = ; i < strArr.Count(); i++)
{
dt.Columns.Add(strArr[i]);
}
for (int i = ; i < strArr.Count(); i++)
{
DataRow dr2 = dt.NewRow();
dr2[] = "总记";
dr2[] = "";
dr2[] = "";
dr2[] = "";
dt.Rows.Add(dr2);
}
ASP.NET中的Excel操作(OLEDB方式)的更多相关文章
- ASP.NET中的Excel操作(NPOI方式)
代码准备: 一:实体准备 代码如下: /// <summary> /// 一个能添加到将要导出到指定行的实体类型规范 /// data:{int StartColIndex ? 0, in ...
- ASP.net中导出Excel的简单方法介绍
下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat=&quo ...
- ASP.net 中手工调用WS(POST方式)
ASP.net 中手工调用WS(POST方式)核心代码:string strUrl="http://localhost:21695/service1.asmx/getmythmod" ...
- asp.net中导出Excel的方法
一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...
- Asp.Net中的三种分页方式
Asp.Net中的三种分页方式 通常分页有3种方法,分别是asp.net自带的数据显示空间如GridView等自带的分页,第三方分页控件如aspnetpager,存储过程分页等. 第一种:使用Grid ...
- 报表中的Excel操作之Aspose.Cells(Excel模板)
原文:报表中的Excel操作之Aspose.Cells(Excel模板) 本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件.这个组件的强大之处,就不多说,对于我们的报表总是会有导 ...
- C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation
C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation 后台添加以下方法:/// <summa ...
- Asp.Net中使用OpenRowSet操作Excel表,导入Sql Server(实例)
有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎). Jet 引擎大家都很熟悉,可 ...
- C#操作Excel的OLEDB方式与COM方式比较
2013-03-15 13:42:54 作者:有理想的码农 在对Excel进行读写操作时,使用微软自身提供的解决方案,有两种(第三方方式除外),分别是OLEDB方式和调用COM组件的方式 ...
随机推荐
- [SQL基础教程] 3-2 对表进行分组
[SQL基础教程] 3-2 对表进行分组 GROUP BY SELECT <列名1>,<列名2>,... FROM <表名> GROUP BY <列名1> ...
- [河南省ACM省赛-第三届] BUYING FEED (nyoj 248)
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> us ...
- 关于MongoDB数据库中文件唯一性的问题
※重要※——介绍一下我的环境:MongoDB的“win32-x86_64-2008plus-ssl-3.0.5”,MongoVUE版本是1.6.9,VS2010,dll是1.10版本. MongoDB ...
- jquery获取radio的值
Html代码是 <label><input type="radio" name="proofing" value="1"& ...
- juit测试中报错:org.hibernate.HibernateException: Unable to get the default Bean Validation factory
org.hibernate.HibernateException: Unable to get the default Bean Validation factory 解决方法: 解决方案: 在hib ...
- Oralce生成前N年的年数据
今天做一个统计报表的时候正好碰到这个问题,原来,一般是通过后台代码来生成.现在直接通过oracle来生成,记录一下. 方法一: SELECT YEAR FROM ( , UNION SELECT TO ...
- sqlserver 更改跟踪相关知识
数据捕获相关文章: http://www.cnblogs.com/lyhabc/p/3383484.html http://www.cnblogs.com/chenmh/p/4408825.html ...
- Mysql基础知识整
web项目部署 Java项目使用的web服务器:Tomcat.weblogic.webshare.jetty Php.python使用的web服务器:nginx.apache 搭建环境过程: 部署.发 ...
- srping标签和hibernate查询
Spring的注解形式:@Repository.@Service.@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean. view层: 结合control层,显示 ...
- box2d 计算自由落体下一帧的位置
var dt:Number=1/30; var y0:Number=_body.GetPosition().y; var y:Number=y0+_body.GetLinearVelocity().y ...