C#调用WPS操作Excel文件遇到的问题

来源:互联网 发布:php开发实战视频教程 编辑:程序博客网 时间:2024/05/17 03:37

           学习C#需要生成Excel文件,但自己的电脑不想安装Office,因为习惯了WPS。

         之前学习Delphi时发现调用WPS-ET和调用Office-Excel的方法基本一样,想想用C#应该也不会差太多。于是上网搜了一通,但运行后老是提示找不到文件(Interop.kso.dll),"未能加载文件或程序集“Interop.KSO, Version=98.1.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。"---因为我用的是SharpDevelop,不是VS。

         然后又搜了一番,还是没有结果,偶然间看到有人提供Interop.kso.dll的下载,心中窃喜,下下来放到exe目录,运行、正常了。然后就开始搜如何生成这个文件,未果。

         后来用装安装VS的电脑,按照网上的办法调用ET,直接就成功了。分析生成的目录,发现它能自动生成Interop.kso.dll,难道SharpDevelop不能自己生成 吗?由于又搜如何生成Interop.***.dll文件,发现TlbImp.exe是用来生成Interop.***.dll文件的。用法:Microsoft SDKs\Windows\v7.0A\bin\TlbImp.exe  office6\ksoapiv8.dll  /out:Interop.KSO.dll。不过生成的文件和VS生成的并不同(TlbImp.exe生成的是:Assembly imported from type library 'KSO'. VS生成的为:从类型库“KSO”导入的程序集。)。由是就想有没有办法把这个工具集成到SharpDevelop,还没研究出结果,偶然间在项目的obj\Debug竟然有Interop.kso.dll。直接泪奔。

      简单整理如下:C#调用ET,在项目右键中“添加引用”,选择"COM"里的“Kingsoft ET 2.0 object library” 对应文件: etapiv8.dll,选择“生成”操作,然后将\obj\Debug目录(也可能是会是\Release)下的Interop.KSO.dll复制到\bin\Debug目录,再运行项目就可以了。

      具体代码请自行搜索,简单来说,只需要将调用Office的代码中的Excel换成ET。

      SharpDevelop竟然 会有这样的BUG。


     注:Microsoft SDKs/Windows/v7.0A/bin/zh-CHS/StartTools.htm(Windows SDK 工具列表)文档中有说明:

            TlbImp.exe :类型库导入程序。将 COM 类型库中发现的类型定义转换成托管元数据格式的等同定义。


原创粉丝点击