Excel的导出导入的多种方法
1. 导入
a.) 使用微软的OLEDB方式
b.) DCOM方式
2. 导出
a.)用gridview导出到Excel
并且需要override一下VerifyRenderingInServerForm方法(这一点非常重要,否则在点击按钮后会报错),代码如下
最好在页面文件加上EnableEventValidation = "false"
我们有时候需要用这中方法导出的Excel文件在导入到数据库中,就会有问题了,将会提示"外部表不是预期的格式"。出现这种错误那就是我们的Excel文件不是标准的Excel格式。我们先来看看怎么判断一个Excel文件是不是标准的格式。方法是:用记事本打开你的excel文件,看看显示是否为乱码。若是html代码,则表示你的excel文件格式不是标准的excel格式,才会提示“外部表不是预期的格式”的错误;若是乱码,我这边测试是不会提示这个错误的,可以成功导入。那么怎么才能导出标准的Excel格式的文件呢?
b.)DCOM
这种方法就解决了上面出现的问题。唯一要注意的是权限的设置。服务器端会存在c#是否有权限使用excel com组件的问题。我先贴出一个操作Excel 的类库
对类库的调用
Dcom方式导入Excel的权限配置:1,先查看计算机管理-本地用户和组-用户(查看是否有ASPNET用户,没有则添加)
2,找到项目文件夹-属性-安全-添加-ASPNET-(添加读取和写入权限)
3,找到Microsoft.NET/Framework/v1.0.3705/CONFIG下的machine.config文件,将processModel节中的username的值设为SYSTEM(2.0以上的跳过这条)
4,在Windows的运行框中输入dcomcnfg,打开Com管理。
Microsoft Excel应用程序-属性-常规(身份验证级别:无);
标识-启动用户;
安全-(启动和缴活权限-自定义-编辑-添加(Everyone:授所有权限))
安全-(访问权限-自定义-编辑-添加(Everyone:授所有权限))
安全-(配置权限-自定义-编辑-添加(分别对ASPNET,Users,Power Users等用户:授所有权限(或者访问、运行和配置权限)))
最后重起计算机