Linux下调用wps的Tables接口,WPS二次开发简单示例

有时候软件会有报告生成的功能需求,一般都用MS OFFICE开放的接口来开发,但是MS OFFICE不是免费的,可以考虑用WPS开放的接口。MS OFFICE和WPS的接口其实差不太多。那么具体要怎样才可以用WPS开放的接口生成doc文档报告呢?1、添加TypeLib类型库比如我现在想要点击对话框的一个按钮就开始生成报告,那么在项目的右键菜单中选择“添加”→“类”→“TypeLib中的MFC库”,从注册表中找到关于KingSoft WPS的项, 并在左侧选择要导入的类,如图:

Linux下调用wps的Tables接口,WPS二次开发简单示例_第1张图片

完成类的导入后,把系统自动生成的类的第一行代码(#import那行)注释了。2、使用在要用到类型库的地方包含相应的头文件,就可以使用了。具体用哪个函数,就找与你要的操作单词意思接近的函数,多琢磨琢磨就会了,再不行就到WPS的论坛去问好了。简单示例代码:

#include "CApplication.h"

#include "CDocuments.h"

#include "CDocument0.h"

#include "CnlineShapes.h"

#include "CRange.h"

#include "CSelection.h"

#include "CTables0.h"

#include "CTable0.h"

#include "CCell.h"

CApplication app;

app.CreateDispatch(_T("WPS.APPLICATION"));

app.put_Visible(TRUE);

CDocuments docs = app.get_Documents();

docs.Add(COleVariant(_T("")), false, 0, true);

CSelection sel = app.get_Selection();

sel.TypeText(_T("hello! 这是个WPS二次开发的简单例子"));

sel.TypeParagraph();

sel.TypeText(_T("测试表格:"));

sel.TypeParagraph();

COleVariant vTrue((short)TRUE);

COleVariant vFalse((short)FALSE);

COleVariant vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

CnlineShapes shapes = sel.get_InlineShapes();

shapes.AddPicture(_T("G:\\pictures\\girl.jpg"), &vFalse, &vTrue, &vOpt);

CDocument0 doc = app.get_ActiveDocument();

CRange range = sel.get_Range();

CTables0 tabs = doc.get_Tables();

COleVariant defaultBehavior((short)1);

COleVariant AutoBehavior((short)0);

CTable0 tab = tabs.Add(range, 7, 4, defaultBehavior, AutoBehavior);

for (int i=0; i<=7; i++)

{

for (int j=0; j<=4; j++)

{

CCell cell = tab.Cell(i, j);

cell.Select();

CString str;

str.Format(_T("%d, %d"), i, j);

sel.TypeText(str);

}

}

sel.Move(long(2), long(100));

sel.TypeParagraph();

sel.put_Style(COleVariant(_T("标题 1")));

sel.TypeText(_T("标题 1"));

sel.TypeParagraph();

sel.put_Style(COleVariant(_T("标题 3")));

sel.TypeText(_T("标题 3"));

sel.TypeParagraph();

sel.put_Style(COleVariant(_T("正文")));

sel.TypeText(_T("正文"));

sel.TypeParagraph();

sel.DetachDispatch();

shapes.DetachDispatch();

app.DetachDispatch();

运行效果如下:

Linux下调用wps的Tables接口,WPS二次开发简单示例_第2张图片

示例代码见附件

你可能感兴趣的:(Linux下调用wps的Tables接口,WPS二次开发简单示例)