• 大小: 31KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: WPS  VC++  ET  

资源简介

本例程提供基于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


评论

共有 条评论