Excel插入圖片

 PicturesPtr不可能被倒出來的,因爲它是在IDL中隱藏了。vb還可以使用,不知道vc怎麼使用隱藏的方法。我找到一種方法可以插入圖片,首先導入excel9.olb(Excel 95 and prior   :   xl5en32.olb
 Excel 97             :   excel8.olb
 Excel 2000           :   excel9.olb
 Excel 2002           :   excel.exe):
// ExcelPicture.h: interface for the CExcelPicture class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_EXCELPICTURE_H__CA5DFF0B_49DC_4829_BB22_A0010E28A64C__INCLUDED_)
#define AFX_EXCELPICTURE_H__CA5DFF0B_49DC_4829_BB22_A0010E28A64C__INCLUDED_
#include "excel9.h"// Added by ClassView
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CExcelPicture  
{
public:
BOOL InsertPicture(LPCTSTR lpszFilePath);
CExcelPicture();
virtual ~CExcelPicture();
protected:
_Application m_pApp;
Workbooks m_pWorkBooks;
_Workbook m_pWorkBook;
//Sheets* m_pSheets;
_Worksheet m_pWorkSheet;
//Range* m_pRange;
Shapes m_pShapes;
//Shape* m_pShape;
};
#endif // !defined(AFX_EXCELPICTURE_H__CA5DFF0B_49DC_4829_BB22_A0010E28A64C__INCLUDED_)
//---------------------------------------------------------------------------------------
// ExcelPicture.cpp: implementation of the CExcelPicture class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ExcelPicture.h"
#include "COMDEF.H"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CExcelPicture::CExcelPicture()
{
COleVariantcovOptional( (long)DISP_E_PARAMNOTFOUND, VT_ERROR );
if(!AfxOleInit())  
{
        AfxMessageBox("無法初始化COM的動態連接庫!");
        return ;
}  
if( !m_pApp.CreateDispatch( _T("Excel.Application") ) ) 
{
AfxMessageBox("無法啓動Excel服務器!");
return;
}
m_pWorkBooks.AttachDispatch( m_pApp.GetWorkbooks() );
LPDISPATCH lpdspWork = m_pWorkBooks.Open( _T("C://TestPicture.xls"),      
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional );
m_pWorkBook.AttachDispatch( lpdspWork );
m_pWorkSheet.AttachDispatch( m_pWorkBook.GetActiveSheet() );
m_pShapes.AttachDispatch( m_pWorkSheet.GetShapes() );
}
CExcelPicture::~CExcelPicture()
{
COleVariantcovOptional( (long)DISP_E_PARAMNOTFOUND, VT_ERROR );
if( m_pApp )
{
m_pShapes.ReleaseDispatch();
m_pWorkSheet.ReleaseDispatch();
m_pWorkBook.Save();
m_pWorkBook.Close( covOptional,COleVariant(_T("C://TestPicture.xls")),covOptional );
m_pWorkBook.ReleaseDispatch();
m_pWorkBooks.Close();
m_pWorkBooks.ReleaseDispatch();
m_pApp.Quit();
m_pApp.ReleaseDispatch();
}
}
BOOL CExcelPicture::InsertPicture(LPCTSTR lpszFilePath)
{
m_pShapes.AddPicture( lpszFilePath, 1, 1, 100, 100, 53, 53 );
         AfxMessageBox( _T("Insert Picture succeed!") );
return TRUE;
}
//-------------------------------CALL METHOD-----------------------------------------
LPCTSTR lpszFile = _T("C://Documents and Settings//WIN XP//桌面//image68.gif");
CExcelPicture pic;
pic.InsertPicture( lpszFile );

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章