现在的位置: 首页 > 综合 > 正文

c#中两种方式的excel操作

2013年07月07日 ⁄ 综合 ⁄ 共 1894字 ⁄ 字号 评论关闭

C#(或者.net)中操作excel的方式比较多,比如很笨的办法将excel转换为txt来操作,比如简单点的办法使用oledb,再比如使用插件xPorter Tools,虽然odbc也可以直接读,但是我还是系统oledb方式,odbc这里iubu讨论了。

文章讲记录oledb的连接方式与xPorter Tools的使用。oledb

oledb的操作excel非常方便,因为这种方式可以通过编写sql的方式来进行,因为网络上的教程比较多,所以我也就不再说明如何来使用oledb了。但是有一个比较让人头疼的问题那就是provider的问题。

32bit系统,比如windows XP中一般都自带了Microsoft.Jet.OLEDB.4.0驱动,所以现在网络上很大一部分的教程说明都是直接使用的连接字符串:

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

这种方式如果你的程序恰好运行在win XP或者以下版本中,那么没什么问题,但是一旦运行在win7版本中,特别是64bit系统中,问题就来了,我查了下,好像网上很多人都说jet.oledb不支持x86,64bit系统中一般都使用ace12.0,所以字符串就要改改了:

      Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 12.0;HDR=YES";

但是仍然有个问题,因为我个人的电脑上的系统是win7 home basic的,所以根本没找到ace 12.0,,我相信这个问题应该是个普遍问题。

如果你在编程的时候碰到这个问题,那么你的选择只有网上找找ace的驱动,或者换成我下面将要说明的内容。

  • xPorter Tools

这个工具是一个第三方的插件,它需要你去下载,官方网站的地址是www.xporttools.net。另外注意的是xPorter Tools并不是一个插件,它是三个插件组合起来的,所以称为tools,三个插件分别为xPorter、xlReader、txtReader。它们的功能分别是写excel、读excel、读txt。

xPorter Tools下载之后需要注册,注册码是一次性的,而且是免费的,不知道以后会不会收费。获取注册码的方法如下图:

在mai的地方写上你的email地址,点击get installation key,然后去你的email中看看key是多少。记得安装xPorter Tools的时候,一定要能连接上wlan,否则你没办法注册的。还有一点,如果是win7的用户,那么你安装的时候,必须使用“管理员权限”来运行setup.exe这个文件,否则注册的时候会提示连接不上某个什么org的地址。

xPorter Tools用法:

ExcelConnection connection = new ExcelConnection();
connection.ConnectionString = @"Data Source =C:\Users\acer\Desktop\1.xls;HDR=no;Format=xls;";

ExcelCommand command = new ExcelCommand();
command.Connection = connection;
command.CommandText = "aa";

ExcelDataAdapter ad = new ExcelDataAdapter(command);
ad.Fill(dt);

特别注意的是command我暂时还没有找到办法来直接使用connection来createCommand,因为ecelConnection.createcommand返回的是common.command,我不清楚能否显示转换为excelCommand,你可以试试。另外command.commandText这个里面不需要写select,因为我使用的是xlReader,xlReader本身就是专属的查询插件,所以comandText中就只需要写上tablename就好了,我举例的时候aa就是我第一个sheet的name,如果你要访问多张表格,我在网上看到的资料说是sheet1;sheet2;sheet3;..sheet4这样来写,虽然我没用过一次查多张表格。。

另外,附上我查过的资料地址,希望这几个只能能长期存在

资料1资料2资料3

抱歉!评论已关闭.