Excel连接字符串在.NET中的应用-阿里云开发者社区

开发者社区> 浣熊干面包> 正文

Excel连接字符串在.NET中的应用

简介:
+关注继续查看

介绍几种在.NET中直接连接Excel作为数据源的几种方法以及连接字符串的说明。

Microsoft Jet OLE DB 4.0

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

  64位机器可以看这里http://www.connectionstrings.com/Articles/Show/using-jet-in-64-bit-environments

  如果上面的连接字符串不奏效,可以尝试下面的格式。有些早期版本的2003格式的Excel文件需要在连接字符串中添加OLEDB前缀作为Provider标识。

OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

  连接字符串中的双引号是必须的,请注意在代码中进行转义。

  C#,C++中使用\"对双引号进行转义。

  VB6,VBScript中使用""对双引号进行转义。

  XML(或web.config)中使用"对双引号进行转义。

  "HDR=Yes;"用于指示将Excel表格中的第一行作为标题,此时在查询语句中可以将标题作为数据表的字段名使用。"HDR=No;"则表示将Excel表格中的所有行都作为数据内容而不包含标题,此时在查询语句中需要使用F1,F2等作为字段名。如第一列为F1,第二列为F2等,以此类推。

  "IMEX=1;"用于指示始终将Excel单元格中的内容作为text类型的数据。该选项会对Excel文件内容的回写产生影响。

  SQL语法:"Select [Column Name One]", [Column Name Two] From [Sheet One$]"。注意Excel wooksheet的名字必须以"$"结尾并且包含在方括号中。列名如有需要也应当包含在方括号中(如列名中包含有空格其它特殊字符等)。

  如何通过程序获取指定Excel文件中各个Sheet的名称?

using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    DataTable dt 
= connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { nullnullnull"Table" });
    
string sqlStr = "Select * From " + dt.Rows[0]["TABLE_NAME"].ToString();
}

  除了表名和列名的写法有所不同外,SQL语句的使用方法和在SQL Server中基本相同。在.NET中数据访问层仍然可以使用OleDbHelper类,使用方法与普通的数据库一样。

  另外,如果指定的Excel文件需要密码才能打开,你需要在连接字符串中提供连接密码,否则打开Excel文件会失败。具体的内容可以看这里,

http://www.connectionstrings.com/Articles/Show/how-to-open-password-protected-excel-workbook

 

ACE OLEDB 12.0

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended Properties="Excel 12.0;HDR=YES";

  使用ACE 12.0可以连接早期版本(97-2003)的Excel文件,对于2003以后版本的Excel也通用,但前提是Office组件中安装了对应的ACE,否则无法使用。可以去下面的地址下载ACE组件。

http://www.microsoft.com/download/en/details.aspx?id=13255

  该连接字符串同样适用于Xlsb和Xlsm格式的Excel文件。

 

Microsoft Excel ODBC Driver

Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\MyExcel.xls;DefaultDir=c:\mypath;

  使用ReadOnly=0表示连接是只读的,所有对数据源的更新操作将不可回写。

Driver={Microsoft Excel Driver (*.xls)};Dbq=C:\MyExcel.xls;ReadOnly=0;

 

.NET xlReader for Microsoft Excel

Data Source =c:\myExcelFile.xlsx;HDR=yes;Format=xlsx;

  注意上面的连接字符串中使用了HDR=yes参数,表示将Excel数据表的首行作为标题。

 


本文转自Jaxu博客园博客,原文链接:http://www.cnblogs.com/jaxu/archive/2011/07/29/2121022.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
用字符串连接SQL语句并用EXEC执行时,出现名称 '‘不是有效的标识符
原文:用字符串连接SQL语句并用EXEC执行时,出现名称 '‘不是有效的标识符  用字符串连接SQL语句并用EXEC执行时,出现名称 '这里是字符串连接的一条SQL语句‘不是有效的标识符  才发现,在写exec @sql 时,忘了在@sql加(),这样写 exec (@sql) 就不会出错了!
591 0
Java字符串连接效率
字符串操作是编写程序中最常见的行为,本文对String、StringBuilder、StringBuffer三个类在字符串处理方面的效率进行分析。      Java中最常见也是应用最广泛的类就是String类。
484 0
带你读《Excel在会计和财务管理中的应用》之二:编制会计凭证
本书在前3版的基础上根据软件版本的升级进行第4次改版。全书按照会计流程和财务管理的知识要点编写,书中囊括会计和财务管理中的以下内容:现金日记账,凭证编制,生成科目汇总表、科目余额表、总分类账和明细分类账,固定资产的管理,工资管理,应收款管理,应付款管理,进销存管理,生成资产负债表、利润表和现金流量表,供应商评价,本量利分析,坏账成因分析等。
421 0
将Excel导入到DataTable (用ODBC方法连接)
///         /// 将Excel导入到DataTable (用ODBC方法连接)(LiPu)         ///         /// excel 路径         ///         ///         public DataTable Excel...
762 0
推荐一个非常好用的Chrome扩展应用,用于美化Json字符串
这个Chrome扩展应用的名称叫JSON Viewer Awesome 1.0.6: 安装之后,在Chrome工具栏会出现一个紫色的小图标: 然后可以把任意Json字符串直接贴到Chrome界面里: 点Parse JSON, 就可以以树状结构显示结果: 或是以Chart方式显示,并且能随意拖动: 这个Chrome应用以黑色作为背景色,风格大气稳重, 适合程序猿使用.
1113 0
asp.net 连接新浪微博
资料收集 1 官方 http://open.weibo.com/sdk/js http://open.weibo.com/widget/js#connect   2 教程 http://zzk.
714 0
941
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载