C#调用WPS2016方法和常见问题处理

栏目: C# · 发布时间: 5年前

内容简介:开发环境:Windows7 64位+Word2007 +WPS Office 专业增强版+Visual Studio 2010软件安装:安装Microsoft Office 2007 后再安装WPS 2016。异常说明:开发机测试先安装Microsoft Office 2013后,再安装Wps2016,系统正常。然后卸载Office2013 后,再到项目中引用WPS相关的DLL时会报错,只能卸载WPS2016后,重新安装OFFICE2007,再安装WPS2016继续开发。

开发环境:Windows7 64位+Word2007 +WPS Office 专业增强版+Visual Studio 2010

软件安装:安装Microsoft Office 2007 后再安装WPS 2016。

异常说明:开发机测试先安装Microsoft Office 2013后,再安装Wps2016,系统正常。然后卸载Office2013 后,再到项目中引用WPS相关的DLL时会报错,只能卸载WPS2016后,重新安装OFFICE2007,再安装WPS2016继续开发。

开发步骤如下:

1、打开Visual Studio 2010后新建一个NET2.0应用程序项目。

C#调用WPS2016方法和常见问题处理

2、添加WPS对应的引用:

方法一:根据实际需要科添加下面的COM引用

添加引用 -> COM -> Kingsoft Add-In Designer

添加引用 -> COM -> Microsoft Office 11.0 Object Library

添加引用 -> COM -> Upgrade WPS Office 3.0 Object Library(Beta) 

添加引用 -> COM -> Upgrade WPS Presentation 3.0 Object Library(Beta)

添加引用 -> COM -> Upgrade Kingsoft WPS 3.0 Object Library(Beta)

添加引用 -> COM -> Kingsoft WPS Extend Apo 1.0 Object Library(Beta)

C#调用WPS2016方法和常见问题处理

---------------------------------------------------------------------------------------------------------------------

方法二:直接添加安装目录下的DLL引用

添加下面的引用后可以使用using WPS;(删除WORD后文件不会丢失)

C:\Windows\assembly\GAC_32\Kingsoft.Office.Interop.Ksoapiv8\98.1.0.0__15d99fb7f8fe5cb4\Kingsoft.Office.Interop.Ksoapiv8.dll

C:\Windows\assembly\GAC_32\Kingsoft.Office.Interop.Wpsapiv8\2.0.0.0__15d99fb7f8fe5cb4\Kingsoft.Office.Interop.Wpsapiv8.dll

添加下面的引用后可以使用using Word;(删除WORD后文件会丢失)

C:\Windows\assembly\GAC_32\Kingsoft.Office.Interop.Ksoapi\99.1.0.0__15d99fb7f8fe5cb4\Kingsoft.Office.Interop.Ksoapi.dll 

C:\Windows\assembly\GAC_32\Kingsoft.Office.Interop.Wpsapi\3.0.0.0__15d99fb7f8fe5cb4\Kingsoft.Office.Interop.Wpsapi.dll

添加安装目录下的WPS对应DLL引用(D:\Program Files (x86)\Kingsoft\WPS Office\10.8.2.6726为本机的WPS2016的安装目录)

D:\Program Files (x86)\Kingsoft\WPS Office\10.8.2.6726\office6\etapi.dll //实现excel对PDF转换(Excel文件对应的API)

D:\Program Files (x86)\Kingsoft\WPS Office\10.8.2.6726\office6\wppapi.dll //PPT对PDF转换(PPT文件对应的API)

D:\Program Files (x86)\Kingsoft\WPS Office\10.8.2.6726\office6\wpsapi.dll //WORD对PDF转换(Word文件对应的API)

本例开发直接添加D:\Program Files (x86)\Kingsoft\WPS Office\10.8.2.6726\office6\wpsapi.dll引用即可。

C#调用WPS2016方法和常见问题处理

添加引用完成后,项目引用会多出来四个引用如下:

C#调用WPS2016方法和常见问题处理

3、新增一个简单的打开WPS文档的类WpsHelper.cs文件代码如下:

using System;

using System.Collections.Generic;

using System.Text;

using System.Windows.Forms;

namespace WpsTestProject

{

public class WpsHelper

{

#region 构造函数

public WpsHelper()

//这里创建wps实例本机安装的是wps2016

Type type = Type.GetTypeFromProgID("KWps.Application");

dynamic wps = Activator.CreateInstance(type);

}

#endregion

#region 在WPS2016中打开指定路径的文档

/// <summary>

/// 在WPS2016中打开指定路径的文档

/// </summary>

/// <param name="strFilePath">文件路径</param>

public void OpenWpsFile(string strFilePath)

{

try

{

Word.Application wordApp = new Word.Application();//应用对象 

wordApp.NormalTemplate.Saved = true;

object fileName = strFilePath;

object confirmConversions = Type.Missing;

object readOnly = false;

object addToRecentFiles = Type.Missing;

object passwordDoc = Type.Missing;

object passwordTemplate = Type.Missing;

object revert = Type.Missing;

object writepwdoc = Type.Missing;

object writepwTemplate = Type.Missing;

object format = Type.Missing;

object encoding = Type.Missing;

object visible = Type.Missing;

object openRepair = Type.Missing;

object docDirection = Type.Missing;

object notEncoding = Type.Missing;

object xmlTransform = Type.Missing;

Word.Document doc = wordApp.Documents.Open(

ref fileName, ref confirmConversions, ref readOnly, ref addToRecentFiles,

ref passwordDoc, ref passwordTemplate, ref revert, ref writepwdoc,

ref writepwTemplate, ref format, ref encoding, ref visible, ref openRepair,

ref docDirection, ref notEncoding, ref xmlTransform);

wordApp.Visible = true;

wordApp.Activate();//激活文档使文档为当前处理  

}

catch (Exception ex)

{

MessageBox.Show("打开文件时出错:"+ex);

}

}

#endregion

}

}

4、窗体中新增一个按钮,添加事件,调用打开WPS文档的类中的方法如下:

C#调用WPS2016方法和常见问题处理

代码如下:

private void button1_Click(object sender, EventArgs e)

{

OpenFileDialog dialog = new OpenFileDialog();

dialog.Multiselect = true;//该值确定是否可以选择多个文件

dialog.Title = "请选择文件夹";

dialog.Filter = "WPS文件(*.wps)|*.wps";

if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

WpsHelper myHelper = new WpsHelper();

myHelper.OpenWpsFile(dialog.FileName);

}

}

5、运行程序后选择文件如下:

C#调用WPS2016方法和常见问题处理

6、程序调用WPS2016打开文件效果如下:

C#调用WPS2016方法和常见问题处理

开发总结:WPS软件要安装专业版的;同一项目中无法同时引用WORD和WPS,可以分开为两个项目;最关键的是WPS对应的DLL引用问题,网上太多的代码,要总结调试,挺麻烦。

源码下载地址: https://download.csdn.net/download/xqf222/10568235


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

卓有成效的程序员

卓有成效的程序员

Neal Ford / 熊节 / 机械工业出版社 / 2009-3 / 45.00元

《卓有成效的程序员》就是讲述如何在开发软件的过程中变得更加高效。同时,《卓有成效的程序员》的讲述将会跨语言和操作系统:很多技巧的讲述都会伴随多种程序语言的例子,并且会跨越三种主要的操作系统,Windows(多个版本),Mac OS X以及 *-nix (Unix或者Linux)。 《卓有成效的程序员》讨论的是程序员个体的生产力,而不是团队的生产力问题,所以它不会涉及方法论(好吧,可能总会在......一起来看看 《卓有成效的程序员》 这本书的介绍吧!

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具