Linux下调用wps的Tables接口,WPS二次开发简单示例
有时候软件会有报告生成的功能需求,一般都用MS OFFICE开放的接口来开发,但是MS OFFICE不是免费的,可以考虑用WPS开放的接口。MS OFFICE和WPS的接口其实差不太多。那么具体要怎样才可以用WPS开放的接口生成doc文档报告呢?1、添加TypeLib类型库比如我现在想要点击对话框的一个按钮就开始生成报告,那么在项目的右键菜单中选择“添加”→“类”→“TypeLib中的MFC库”,从注册表中找到关于KingSoft WPS的项, 并在左侧选择要导入的类,如图:
完成类的导入后,把系统自动生成的类的第一行代码(#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二次开发简单示例相关推荐
- WPS二次开发简单示例
有时候软件会有报告生成的功能需求,一般都用MS OFFICE开放的接口来开发,但是MS OFFICE不是免费的,可以考虑用WPS开放的接口.MS OFFICE和WPS的接口其实差不太多. ...
- rtsp协议_如何在RTSP协议视频智能平台EasyNVR未登录的情况下调用通道直播的接口?...
原标题:如何在RTSP协议视频智能平台EasyNVR未登录的情况下调用通道直播的接口? TSINGSEE青犀视频云边端架构全线都提供了丰富的API接口,用户可以自由调用进行二次开发.在本文之前,我们博 ...
- java调用c 生成so,Java在linux下调用C/C++生成的so文件
Java在linux下调用C/C++生成的so文件 1. CplusUtil.java是java web工程中的一个工具类 内容如下: CplusUtil.java package cn.undone ...
- Linux 下调用UEFI的函数
Linux 下调用UEFI的函数 摘要 Linux 调用UEFI function 时候调用约定的转换 64bits calling convention Microsoft calling conv ...
- Linux下架设邮件服务器全攻略(二)
Linux下架设邮件服务器全攻略(二) (三)sendmail.cf难以配置,Sendmail的开发人员为sendmail的管理者提供了更加容易理解和配置的sendmail.mc文件. 一般情况下,要 ...
- Linux环境中对海康威视工业相机SDK进行二次开发(QT+CMake+Opencv+海康SDK)
关于在Windows环境中对海康威视工业相机SDK进行二次开发的话,可以参考这两篇博客. 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一) 海康威视工业相机SDK二 ...
- Linux下调用fork或system启动子进程的信号和资源释放相关问题
最近一段时间,公司的网管系统二期优化需要新增功能,实现对网管客户端程序进行保护的监控脚本的自动更新及保护进程的监控告警.网管客户端程序分为两部分:客户端GatherClient及保护进程gatherc ...
- python能调用身份证读卡器吗_用Python在Linux下调用新中新DKQ-A16D读卡器,读二代证数据...
1.背景 最近在研究二代证读卡器,手头上的设备是新中新DKQ-A16D,在官网(https://www.onecardok.com.cn/download)逛了一圈,发现Win下的示例,浏览器插件很多 ...
- 在Windows/Linux下调用API函数实现重启系统
一.Linux下重启系统 linux下很简单,直接看代码: #include <unistd.h> #include <sys/reboot.h>bool rebootSyst ...
- (马世龙)Linux下CACTI完全搭建技术文档二
续(马世龙)Linux下CACTI完全搭建技术文档一 6.完成cacti的安装 1. 首先检查一下rra/下面,有没有数据 2. snmpwalk -v 2c -c public ServerIP i ...
最新文章
- 一文清晰讲解机器学习中梯度下降算法(包括其变式算法)
- C#数据库(MySQL)帮助类
- 交换机端口mtu值最大_大中型监控系统如何正确选择交换机
- linux网络编程——boa移植
- ZSKAME大白菜2013官网下载
- [求助]请教一个问题!
- Unity3d中使用自带动画系统制作下雨效果(二)
- 拓端tecdat|R语言生态学模拟对广义线性混合模型GLMM进行功率(功效、效能、效力)分析power analysis环境监测数据
- 计算机关闭节能模式,bios怎么关闭cpu节能模式_bios节能模式怎么设置
- ISIS协议原理与配置
- stm32-DCMI—OV2640摄像头
- Unity 3D作业七:人物模型
- 磁盘管理看不到硬盘的恢复办法
- 计算机英文积累(一)
- 优先队列式分支限界法,完成这n个任务在k个机器的最佳调度。
- 恩智浦 NXP I.MX8M Plus 强大功能简介
- 二叉树的左视图和右视图 形象理解(附C++代码)
- 角色动画(Character Animation)的现状与趋势
- WPF中, DataGrid表格设置标题Header文字大小和行高
- 测控仪器专业权威期刊