资源简介
本例程提供基于WPS表格进行读写操作的类,并VC6.0下编译通过,更新至V1.2
代码片段和文件信息
// ControlWPS.cpp: implementation of the CControlWPS class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “ControlWPS.h“
#include
#pragma comment(lib“comsupp.lib“)
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CControlWPS::CControlWPS() :
m_pIDisp(NULL)
{
CoInitialize(NULL);
::VariantInit(&varWorkbook);
::VariantInit(&varSheets);
::VariantInit(&varActiveSheet);
}
CControlWPS::~CControlWPS()
{
CloseWPS();
CoUninitialize();
}
// 启动WPS表格
BOOL CControlWPS::OpenWPS(CString File)
{
USES_CONVERSION;
CLSID clsid = {0};
// 获取WPS表格的 CLSID
HRESULT hr = CLSIDFromProgID(L“ET.Application“ &clsid);
if(FAILED(hr)) return FALSE;
// 通过CLSID启动WPS
hr = CoCreateInstance(clsid NULL CLSCTX_LOCAL_SERVER IID_IDispatch (void**)&m_pIDisp);
if(FAILED(hr)) return FALSE;
// 使WPS可见
// VARIANT var = {0};
// var.vt = VT_BOOL;
// var.boolVal = VARIANT_TRUE;
// PutProperty(m_pIDisp L“Visible“ &var);
// 获取Workbooks集合
VARIANT varWorkbooks = {0};
hr = GetProperty(m_pIDisp L“Workbooks“ &varWorkbooks);
if(FAILED(hr)) return FALSE;
// 获取工作表
CComVariant varDocument[4];
varDocument[1].vt = VT_BOOL;
varDocument[1].boolVal = VARIANT_FALSE;
varDocument[3].vt = VT_BSTR;
varDocument[3].bstrVal = File.AllocSysString();
hr = InvokeN(varWorkbooks.pdispVal L“Open“ varDocument 4 &varWorkbook);
::SysFreeString(varDocument[3].bstrVal);
if(FAILED(hr)) return FALSE;
// 获取Sheets集合
hr = GetProperty(m_pIDisp L“Sheets“ &varSheets);
if(FAILED(hr)) return FALSE;
// 获取Count集合
VARIANT varCount = {0};
hr = GetProperty(varSheets.pdispVal L“Count“ &varCount);
if(FAILED(hr)) return FALSE;
for (long i=1;i<=varCount.lVal;i++)
{
// 获取Worksheet对象
VARIANT varWorksheet = {0};
CComVariant varItem[1];
varItem[0].vt = VT_I4;
varItem[0].lVal = i;
hr = GetPropertyN(varSheets.pdispVal L“Item“ varItem1&varWorksheet);
if(FAILED(hr)) return FALSE;
// 获取Name对象
VARIANT varName = {0};
hr = GetProperty(varWorksheet.pdispVal L“Name“ &varName);
if(FAILED(hr)) return FALSE;
char* lpszText = _com_util::ConvertBSTRToString(varName.bstrVal);
CString SheetName;
SheetName.Format(“%s“lpszText);
m_SheetNames.Add(SheetName);
delete lpszText;
}
return TRUE;
}
BOOL CControlWPS::OpenSheet(CString Sheet)
{
if(varSheets.vt == 0) return FALSE;
for (long i = 0; i < m_SheetNames.GetSize(); i++)
{
if (m_SheetNames.GetAt(i) == Sheet){
// 获取Worksheet对象
CComVariant varItem[1];
varItem[0].vt = VT_I4;
varItem[0].lVal = i+1;
HRESULT hr = GetPropertyN(varSheets.pdispVal L“Item“ varItem1&varActiveSheet);
if(FAILED(hr)) return FALSE;
hr = Invoke0(varActiveSheet.pdispVal L“Select“ NULL);
if(FAILED(hr)) return FALSE
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9604 2008-12-17 15:47 ExcelAccessSrc\ControlWPS.cpp
文件 1395 2008-12-17 16:05 ExcelAccessSrc\ControlWPS.h
文件 36084 2008-12-17 15:54 ExcelAccessSrc\ExcelAccessSrc.aps
文件 1461 2008-12-17 16:05 ExcelAccessSrc\ExcelAccessSrc.clw
文件 1969 2008-11-24 13:40 ExcelAccessSrc\ExcelAccessSrc.cpp
文件 4331 2008-11-24 13:41 ExcelAccessSrc\ExcelAccessSrc.dsp
文件 553 2008-11-24 13:40 ExcelAccessSrc\ExcelAccessSrc.dsw
文件 1412 2008-11-24 13:40 ExcelAccessSrc\ExcelAccessSrc.h
文件 58368 2008-12-17 16:05 ExcelAccessSrc\ExcelAccessSrc.ncb
文件 53760 2008-12-17 16:05 ExcelAccessSrc\ExcelAccessSrc.opt
文件 2078 2008-12-17 16:05 ExcelAccessSrc\ExcelAccessSrc.plg
文件 40 2008-12-17 16:05 ExcelAccessSrc\ExcelAccessSrc.positions
文件 5858 2008-12-17 15:54 ExcelAccessSrc\ExcelAccessSrc.rc
文件 6524 2008-12-17 16:04 ExcelAccessSrc\ExcelAccessSrcDlg.cpp
文件 1546 2008-11-24 15:31 ExcelAccessSrc\ExcelAccessSrcDlg.h
文件 3723 2008-11-24 13:40 ExcelAccessSrc\ReadMe.txt
文件 1078 2008-11-24 13:40 ExcelAccessSrc\res\ExcelAccessSrc.ico
文件 406 2008-11-24 13:40 ExcelAccessSrc\res\ExcelAccessSrc.rc2
文件 830 2008-12-17 15:50 ExcelAccessSrc\resource.h
文件 216 2008-11-24 13:40 ExcelAccessSrc\StdAfx.cpp
文件 999 2008-11-24 13:40 ExcelAccessSrc\StdAfx.h
目录 0 2008-12-17 16:05 ExcelAccessSrc\Debug
目录 0 2008-11-24 13:40 ExcelAccessSrc\res
目录 0 2008-12-17 16:05 ExcelAccessSrc
----------- --------- ---------- ----- ----
192235 24
- 上一篇:TCP、UDP端口及ICMP网络扫描工具
- 下一篇:NetCDF C++接口使用说明
相关资源
- NetCDF C++接口使用说明
- RSA加解密源码VC++
- 在VC++6.0中编写的音乐播放器源代码
- vc++ mfc 基于udp协议在不同ip地址之间
- 基于LIBPCAP的网络流量实时采集与信息
- VC++2005测试版运行库 Microsoft.VC80.Debu
- C语言+Socket实现文件传输
- 猎豹网校C++ Primer初中高全套无密版
- VC++基于mfc 实现对话框打开读取txt文件
- Sigar 使用详解
- Visual C++ Build Tools 2015 离线包.part1/7
- vc++ 2005 express 完整安装包
- 火车票订票系统模拟 (C 语言)
- VC++之MFC类库中文手册一怀去意---
- MFC视频播放器(带播放列表VC++6.0源代
- QT treeWidget 加载指定路径所有文件夹和
- VC++调用大漠插件
- VC++用MKL产生正态分布随机数、计算样
- VC++ 使用RSA算法防止非法注册机破解软
- VC++开发GIS系统代码陈建春书
- MFC利用CSOCKET实现的小小聊天室
- VC++ MFC MSCOMM VS2010 手把手学会串口收发
- C++ 家庭理财管理系统
- VC++解析并显示JPEG图片showjpeg.rar
- vc++能够显示网页html
- C++使用ADO连接Access数据库源代码(修
- VC++连接STK
- Visual Leak Detector(VLD)1.0 for VC6
- socket应用三 用C语言编写发送邮件程序
- 全景图像拼接程序源代码VC++
评论
共有 条评论