`
love19820823
  • 浏览: 934649 次
文章分类
社区版块
存档分类
最新评论

.net 用OleDb方式 操作 excel 比较完整的解决方案

 
阅读更多

先说说的具体业务需求吧,导出程序中查询和扩展的结果到excel,不想用直接操作单元格的方法操作excel了所以尝试了下用之下的方法解决。

先看一段简略的代码:

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileFullName + ";" + "Extended Properties=Excel 8.0;";
conn = new OleDbConnection(strConn);
conn.Open();

System.Data.OleDb.OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;

之后的操作就和操作数据库的没嘛差别了,但还是有一些注意事项的,这里我会给出我的解决办法;首先excel是不支持delete和drop语句的,其实也不是不支持,只不过不是我们想要的结果首先delete语句会把相应的行清空而不是删除,当你再insert的时候前面会有空行;其次drop也不会帮你把table干掉,呵呵我代码看到的效果和delete相同。在说明我的解决办法之前我要说明一下前三行代码,如果fileFullName这个参数指定的文件不存在conn照样可以正常Open,之后的操作也都一切正常,呵呵,我的思路就是在connect open之前先通过File.Delete(fileFullName )把文件删除掉,之后的创建表呀,出入数据操作呀不会受到影响,最后会生成一个excel文件的。

之前的我写的关于excel的代码都是基于单元格操作的,遇到的问题主要有效率差,关闭的时候关闭excel进程麻烦;但优点是灵活这点大伙可能都能领会,用操作数据的方式操作excel,缺点是delete和drop操作很受限制,向我这种简单的需求是可以满足的,但复杂的需求就要比较麻烦了,比方说不能用删除excel重建的方式绕过delete和drop的情况,再有的就是复杂的格式化处理不能完成,呵呵,不过这种方式操作excel优点也是不言而喻的。

分享到:
评论

相关推荐

    OLEDB读取Excel、csv出现字符串截断、丢失原因及其解决方案

    汽车产业链平台的开发使用的开发工具为VS.NET,使用的语言是C#,在开发的过程中发现使用Microsoft.Jet.OLEDB.4.0读取数据会出现当某一字段内分别含有文本和数字的混合数据时,某一类型的数据会产生丢失。本文就对此...

    asp.net知识库

    Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet ...

    ASP.NET 3.5 开发大全

    10.5.2 使用OLE DB .NET Data Provider 连接txt 10.5.3 使用System.IO命名空间 10.6 访问SQLite 10.6.1 SQLite简介 10.6.2 SQLite连接方法 10.7 小结 第四篇 ASP.NET网络编程 第11章 用户控件和自定义控件 11.1 用户...

    ASP.NET3.5从入门到精通

    10.5.2 使用OLE DB .NET Data Provider 连接txt 10.5.3 使用System.IO 命名空间 10.6 访问SQLite 10.6.1 SQLite 简介 10.6.2 SQLite 连接方法 10.7 小结 第四篇 ASP.NET网络编程 第 11 章用户控件和自定义控件 11.1 ...

    ASP.NET 3.5 开发大全word课件

    10.5.2 使用OLE DB .NET Data Provider 连接txt 10.5.3 使用System.IO命名空间 10.6 访问SQLite 10.6.1 SQLite简介 10.6.2 SQLite连接方法 10.7 小结 第四篇 ASP.NET网络编程 第11章 用户控件和自定义控件 11.1 用户...

    ASP.NET 3.5 开发大全11-15

    10.5.2 使用OLE DB .NET Data Provider 连接txt 10.5.3 使用System.IO命名空间 10.6 访问SQLite 10.6.1 SQLite简介 10.6.2 SQLite连接方法 10.7 小结 第四篇 ASP.NET网络编程 第11章 用户控件和自定义控件 11.1 用户...

    ASP.NET 3.5 开发大全1-5

    10.5.2 使用OLE DB .NET Data Provider 连接txt 10.5.3 使用System.IO命名空间 10.6 访问SQLite 10.6.1 SQLite简介 10.6.2 SQLite连接方法 10.7 小结 第四篇 ASP.NET网络编程 第11章 用户控件和自定义控件 11.1 用户...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    10.3.8 ole db .net数据提供程序 413 10.4 dataset组件 413 10.4.1 datatablecollection对象 414 10.4.2 datarelationcollection对象 414 10.4.3 extendedproperties属性 414 10.4.4 创建和使用dataset...

    【原创】C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)

    2.通过OLEDB把EXCEL做为数据源来写 3.通过RANGE范围写入多行多列内存数据到EXCEL 4.利用系统剪贴板写入EXCEL 好了,我想这些方法已经足够完成我们要实现的功能了,方法不在多,在精,不是么?以上4中方法都可以...

    ASPNET35开发大全第一章

    10.5.2 使用OLE DB .NET Data Provider 连接txt 10.5.3 使用System.IO命名空间 10.6 访问SQLite 10.6.1 SQLite简介 10.6.2 SQLite连接方法 10.7 小结 第四篇 ASP.NET网络编程 第11章 用户控件和自定义控件 11.1 用户...

    excellibrary:Excel文件格式库

    该项目的目的是提供一种本机.NET解决方案,无需使用COM互操作或OLEDB连接即可创建,读取和修改Excel文件。 当前已实现.xls(BIFF8)格式。 将来可能还会支持.xlsx(Excel 2007)。 示例代码: //create new xls file...

    SDL Passolo 2011 合作版 SP9 (11.9.0.53) 已注册中文版

    使用内置的 IDE,用户也可以开发他们自己的本地化解决方案以适应特定软件的需要。 Passolo 可以通过微软和谷歌的翻译引擎直接进行在线翻译。 【宏简介】 除了原版自带的宏,本汉化版本还收录以下几个对汉化非常有用...

Global site tag (gtag.js) - Google Analytics