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组件的方式 ...
随机推荐
- [SOJ] 无路可逃?
Description 唐僧被妖怪关在迷宫中.孙悟空好不容易找到一张迷宫地图,并通过一个魔法门来到来到迷宫某个位置.假设迷宫是一个n*m的矩阵,它有两种地形,1表示平地,0表示沼泽,孙悟空只能停留在平 ...
- C++虚成员函数表vtable
介绍一下多态是如何实现的,关于如何实现多态,对于程序设计人员来说即使不知道也是完全没有关系的,但是对于加深对多态的理解具有重要意义,故而在此节中稍微阐述一下多态的实现机制. 在C++中通过虚成员函数表 ...
- JS正则表达式的test()方法检查汉字
汉字的检查: var reg1=/[^\u4e00-\u9fa5]/g; var text="正则表达式1"; var res1=reg1.test(text);//为true表示 ...
- EF Codefirst 初步学习(二)—— 程序管理命令 更新数据库
前提:搭建成功codefirst相关代码,参见EF Codefirst 初步学习(一)--设置codefirst开发模式 具体需要注意点如下: 1.确保实体类库程序生成成功 2.确保实体表类库不缺少 ...
- AtomicInteger的用法
J2SE 5.0提供了一组atomic class来帮助我们简化同步处理.基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增.减.赋值(更新)操作 ...
- JavaScript DOM编程艺术-学习笔记(第二章)
1.好习惯从末尾加分号:开始 2.js区分大小写 3.程序界万能的命名法则:①不以,数字开头的数字.字母.下划线.美元符号 ②提倡以下划线命名法来命名变量,以驼峰命名法来命名函数.但是到了公司往往会身 ...
- QTP脚本汇总比较有价值
1.Object Spy的Tips Hold the CTRL key to change the window focus or perform other mouse operations 2. ...
- 使用OllyDbg从零开始Cracking CHM
需要的小伙伴拿走,百度云链接:https://pan.baidu.com/s/1pLJa5dh.另有一些视频资料,太多,需要的可以留言.
- C++实现中缀表达式转前、后缀
#include<iostream> #include<string> #include<stack> using namespace std; bool isIn ...
- Deploy Django in Windows
配置 安装目录 D:\PythonWebSW\(免安装) d:\Program Files\ (安装版) 工作目录 E:/PythonWeb/code 项目名称 voith_sales Insta ...