青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

The Class of Excel Operation

Posted on 2009-10-05 09:27 S.l.e!ep.¢% 閱讀(605) 評論(0)  編輯 收藏 引用 所屬分類: Office Automation

The Class of Excel Operation, but
1. 未做異常處理
2. 大部份代碼還未驗證過

/* EclOp.h*/

#pragma once

//#include "StdAfx.h"
#include <afxwin.h>
#include <iostream>

using namespace std ;

#define NULLSTR _T("")


#import "C:\Program Files\Common Files\Microsoft Shared\OFFICE11\mso.dll" rename("RGB", "MSRGB")

#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" raw_interfaces_only, \
rename("Reference", "ignorethis"), rename("VBE", "JOEVBE")

#import "C:\Program Files\Microsoft Office\OFFICE11\excel.exe" exclude("IFont", "IPicture") \
?rename("RGB", "ignorethis"), rename("DialogBox", "ignorethis"), rename("VBE", "JOEVBE"), \
?rename("ReplaceText", "JOEReplaceText"), rename("CopyFile","JOECopyFile"), \
rename("FindText", "JOEFindText"), rename("NoPrompt", "JOENoPrompt")

using namespace Office;
using namespace VBIDE;
using namespace Excel ;

class CEclOp
{
public:
?CEclOp(void);
?~CEclOp(void);
public:
?
?BOOL InsertAChart(short nSheet);
?BOOL DeleteASheetByNO(short nSheet);
?BOOL DeleteASheetByName(CString strSheet);
?CString GetCellText(short nSheet, int Row, int Col);
?void DeleteCells(short nSheet, CString strRange);
?void DeleteCells(short nSheet, unsigned int nFRow, unsigned int nFCol, unsigned int nTRow, unsigned int nTCol);
?BOOL Initialization(CString strFilePath = NULLSTR);
?void SetCellText(short nsheet,int row, int col, _variant_t content);
?void SetCellText(short nSheet,CString strCell, _variant_t Content);
?void InsertPicsFromFile(LPCSTR path, short nsheet, double left, double top);
?void InsertSheetsAfter(short nsheet, int num);
?void SetColumnWidth(int nColF, int nColT, double dWidth);
?void SaveQuit(CString strPath);
?void ReleaseAllInterfaces();
?void SetCellColor(short nSheet, CString Range, COLORREF rgb);
?void SetCellColor(short nSheet, int row, int col, COLORREF rgb);
?
private:
?int m_nTotalSheets;
?int m_nCurSheet;
public:
?_ApplicationPtr pApplication;
?_WorkbookPtr pThisWorkbook;
?_WorksheetPtr pThisWorksheet;
?RangePtr pThisRange;
?_variant_t vt ;
?Excel::XlFileFormat vFileFormat ;
?Excel::XlSaveAsAccessMode vSaveAsAccessMode ;
?Excel::XlSaveConflictResolution vSaveConflictResolution ;
public:
?SheetsPtr pThisSheets;
?
};


/*EclOp.cpp*/

//#include "stdafx.h"
#include "EclOp.h"


CEclOp::CEclOp(void)
{
?
}

CEclOp::~CEclOp(void)
{
?
?pThisRange.Release();??????????????????????
?pThisWorksheet.Release();??????????????????????????????????????
?pThisSheets.Release();????????????????????????????????????????
?pThisWorkbook.Release();??????????????????????????????
?pApplication.Release();
?::CoUninitialize();
}

void CEclOp::ReleaseAllInterfaces()
{
?if (pThisRange != NULL)
??pThisRange.Release();?????????????????????????????????????
?if (pThisWorksheet != NULL)
??pThisWorksheet.Release();????????????????????????????????????????
?if (pThisSheets != NULL)
??pThisSheets.Release();?????????????????????????????????????????
?if (pThisWorkbook != NULL)
??pThisWorkbook.Release();???????????????????????????????????????
?if (pApplication != NULL)
??pApplication.Release();
?
?::CoUninitialize();
}
BOOL CEclOp::Initialization(CString strPath)
{
?
?if(FAILED(::CoInitialize(NULL)))
?{
??AfxMessageBox("Initializing Excel Failed!");
??return FALSE;
?}
?pApplication = NULL;
?pThisWorkbook = NULL;
?pThisWorksheet = NULL;
?pThisSheets = NULL;
?pThisRange = NULL;
?
?if (pApplication.CreateInstance("Excel.Application") != S_OK)
??return FALSE;
?// pApplication->PutVisible (0,VARIANT_TRUE);
?pThisWorkbook = pApplication->GetWorkbooks()->Add((_variant_t)strPath) ;
?pThisSheets = pThisWorkbook->GetWorksheets() ;
?return TRUE;
}

void CEclOp::SetColumnWidth(int nColF, int nColT, double dWidth)
{
?CString strRange;
?strRange.Format("%c%d:%c%d", nColF + 'A' - 1, 1, nColT + 'A'- 1, 1 );
?pThisRange = pThisWorksheet->GetRange((_variant_t)strRange);
?pThisRange->GetEntireColumn()->ColumnWidth = dWidth;
?
}


void CEclOp::SetCellText(short nSheet,CString strCell, _variant_t Content)
{
?
?// pThisWorksheet = pThisSheets->GetItem(nSheet);
?// pThisRange = pThisWorksheet->GetRange(COleVariant(strCell),?? COleVariant(strCell));
?
?CString strRange;
?
?pThisWorksheet = pThisSheets->GetItem(nSheet);
?
?// strRange.Format("%c%d:%c%d", Col + 'A' - 1, Row, Col + 'A'- 1, Row );//need to confirm;
?
?strRange = strCell + ":" + strCell;
?
?pThisRange = pThisWorksheet->GetRange((_variant_t)strRange);
?
?pThisRange->PutItem((long)1, (long)1, Content);
?
}

CString CEclOp::GetCellText(short nSheet, int Row, int Col)
{
?CString strRet;
?CString strRange;
?pThisWorksheet = pThisSheets->GetItem(nSheet);
?
?if (Col <= 26)
??strRange.Format("%c%d:%c%d", Col + 'A' - 1, Row, Col + 'A'- 1, Row );//need to confirm;
?else //if (Col > 26 && Col <= 256)//max columns of an excel sheet is 256
?{
??char chCol = Col % 26 + 'A' - 1 < 'A' ? 'Z':Col % 26 + 'A' - 1;
??strRange.Format("%c%c%d:%c%c%d", (Col-1) / 26 + 'A' - 1, chCol, Row, (Col-1)/ 26 + 'A' - 1, chCol, Row);
?}
?
?pThisRange = pThisWorksheet->GetRange((_variant_t)strRange);
?
?//strRet = pThisRange->GetText();
?
?return strRet;
}

void CEclOp::SetCellText(short nSheet,int Row, int Col, _variant_t Content)
{
?
?CString strRange;
?int nColStart = 1;
?
?pThisWorksheet = pThisSheets->GetItem(nSheet);
?
?if (Col <= 26)
??strRange.Format("%c%d:%c%d", Col + 'A' - 1, Row, Col + 'A'- 1, Row );//need to confirm;
?else //if (Col > 26 && Col <= 256)//max columns of an excel sheet is 256
?{
??char chCol = Col % 26 + 'A' - 1 < 'A' ? 'Z':Col % 26 + 'A' - 1;
??strRange.Format("%c%c%d:%c%c%d", (Col-1) / 26 + 'A' - 1, chCol, Row, (Col-1)/ 26 + 'A' - 1, chCol, Row);
?}
?
?pThisRange = pThisWorksheet->GetRange((_variant_t)strRange);
?pThisRange->PutItem((long)1, (long)nColStart, Content);
?
}

void CEclOp::InsertPicsFromFile(LPCSTR path, short nSheet, double left, double top)
{
?pThisWorksheet = pThisSheets->GetItem((_variant_t)nSheet);
?
?PicturesPtr pics = pThisWorksheet->Pictures();
?
?pics->Insert(path, VARIANT_FALSE);
?pics->PutLeft(left);
?pics->PutTop(top);
?
}

void CEclOp::InsertSheetsAfter(short nSheet, int nNum)
{
?_WorksheetPtr pSheet = pThisSheets->GetItem(nSheet);
?VARIANT var;
?
?var.vt = VT_DISPATCH;
?var.pdispVal = pSheet;
?
?pThisSheets->Add(vtMissing,var, (long)nNum);
?
}

void CEclOp::SaveQuit(CString strPath)
{
?
?vSaveAsAccessMode = xlNoChange ;
?vFileFormat = xlWorkbookNormal ;
?vSaveConflictResolution = xlLocalSessionChanges ;
?
?pThisWorkbook->SaveAs(_variant_t(strPath), (long)vFileFormat,_variant_t(""),_variant_t(""), _variant_t(false),
??????? _variant_t(false), vSaveAsAccessMode, (long)vSaveConflictResolution, _variant_t(false)) ;
?pThisWorkbook->Close();
?pApplication->Quit();
}

void CEclOp::SetCellColor(short nSheet, CString strRange, COLORREF rgb)
{
?pThisWorksheet = pThisSheets->GetItem((_variant_t)nSheet);
?pThisWorksheet->GetRange((_variant_t)strRange)->GetInterior()->PutColor((long)rgb);
}

void CEclOp::SetCellColor(short nSheet, int row, int col, COLORREF rgb)
{
?pThisWorksheet = pThisSheets->GetItem((_variant_t)nSheet);
?CString strRange;
?strRange.Format("%c%d:%c%d", 'A' + col - 1, row, 'A' + col - 1, row);
?pThisWorksheet->GetRange((_variant_t)strRange)->GetInterior()->PutColor((long)rgb);
?
}

void CEclOp::DeleteCells(short nSheet, CString strRange)
{
?pThisWorksheet = pThisSheets->GetItem((_variant_t)nSheet);
?
?pThisRange = pThisWorksheet->GetRange((_variant_t)strRange);
?
?pThisRange->Delete();
}

void CEclOp::DeleteCells(short nSheet, unsigned int nFRow, unsigned int nFCol, unsigned int nTRow, unsigned int nTCol)
{
?pThisWorksheet = pThisSheets->GetItem((_variant_t)nSheet);
?
?CString strRange;
?
?if (nTCol <= 26)
??strRange.Format("%c%d:%c%d", nFCol + 'A' - 1, nFRow, nTCol + 'A'- 1, nTRow);//need to confirm;
?else //if (Col > 26 && Col <= 256)//max columns of an excel sheet is 256
?{
??char chTCol = nTCol % 26 + 'A' - 1 < 'A' ? 'Z':nTCol % 26 + 'A' - 1;
??strRange.Format("%c%d:%c%c%d", nFCol + 'A' - 1, nFRow, (nTCol-1)/ 26 + 'A' - 1, chTCol, nTRow);
?}
?
?
?// strRange.Format("%c%d:%c%d", 'A' + nFCol - 1, nFRow, 'A' + nTCol - 1, nTRow);
?pThisRange = pThisWorksheet->GetRange((_variant_t)strRange);
?// pThisRange = pThisWorksheet->GetRange("H13:DB1004");
?pThisRange->Delete();
?
?
}

BOOL CEclOp::DeleteASheetByNO(short nSheet)
{
?_WorksheetPtr pSheet = pThisSheets->GetItem(nSheet);
?pApplication->DisplayAlerts[0] = FALSE;
?pThisWorksheet = pThisSheets->GetItem((_variant_t)nSheet);
?pThisWorksheet->Delete();
?return TRUE;
}

BOOL CEclOp::DeleteASheetByName(CString strSheet)
{
?
?pApplication->DisplayAlerts[0] = FALSE;
?//pThisWorksheet->AttachDispatch(pThisSheets->GetItem(COleVariant("Plot")));
?pThisWorksheet = pThisSheets->GetItem("Plot");
?pThisWorksheet->Delete();
?return TRUE;
?
}

BOOL CEclOp::InsertAChart(short nSheet)
{
?_ChartPtr pChart;
?_WorksheetPtr pSheet = pThisSheets->GetItem(nSheet);
?
?//_ChartPtr pChart = pThisWorkbook->Charts>Add();
?pChart = pThisWorkbook->Charts->Add();
?pChart->PutChartType(xlXYScatterLinesNoMarkers);
?
?SeriesCollectionPtr pSeriesCollection;
?SeriesPtr pSeries;
?RangePtr pRange;
?pThisWorksheet = pThisSheets->GetItem((_variant_t)nSheet);
?pSeriesCollection= pChart->SeriesCollection();
?pSeries = pSeriesCollection->NewSeries();
?pRange = pThisWorksheet->Range["F2"]["F50"];
?pSeries->PutXValues((Range*)pRange);
?
?pChart->Location(xlLocationAsObject, pSheet->GetName());
?
?return TRUE;
?
}

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲第一黄色网| 日韩午夜av| 欧美精品三级| 久久综合综合久久综合| 久久精品视频在线播放| 久久嫩草精品久久久久| 免费看成人av| 欧美日韩精品在线观看| 国产精品系列在线播放| 国产一区二区三区日韩欧美| 亚洲成色777777女色窝| 亚洲欧洲一区| 亚洲欧美在线免费观看| 久久综合一区二区| 日韩亚洲不卡在线| 午夜精品视频在线观看| 免费精品视频| 国产精品激情av在线播放| 狠狠色狠狠色综合系列| 99国产精品久久| 久久嫩草精品久久久精品| 亚洲日本一区二区三区| 欧美亚洲自偷自偷| 欧美国产精品va在线观看| 国产日韩欧美精品在线| 日韩视频免费看| 久久日韩精品| 在线日韩中文| 夜夜嗨一区二区| 久久中文字幕导航| 夜夜爽www精品| 欧美成人免费全部观看天天性色| 欧美色123| 亚洲人成在线观看| 久久理论片午夜琪琪电影网| 日韩一级不卡| 欧美国产第一页| 一区二区三区在线免费视频| 香蕉久久a毛片| 9色porny自拍视频一区二区| 欧美 日韩 国产一区二区在线视频 | 欧美jizz19hd性欧美| 一区二区三区久久久| 欧美 日韩 国产一区二区在线视频| 国产精品私房写真福利视频| 在线一区二区三区四区| 欧美激情精品久久久久久| 欧美一区二区三区免费大片| 欧美性开放视频| 99视频日韩| 亚洲国产精品一区二区www| 久久久久久网址| 黄色成人小视频| 久久一二三四| 久久久久久有精品国产| 国产亚洲精品aa| 久久久久久久999| 亚洲欧美一区二区激情| 国产啪精品视频| 久久精品国产精品亚洲| 欧美一区二区三区在线播放| 国产日韩欧美不卡在线| 久久精品国产亚洲一区二区三区 | 欧美午夜宅男影院在线观看| 国产精品99久久久久久久久| 一本色道久久综合狠狠躁篇的优点| 欧美日韩国产电影| 亚洲无限乱码一二三四麻| 国产精品99久久99久久久二8| 欧美日韩一区二区三| 亚洲一卡久久| 亚洲欧美日韩中文播放| 狠狠色狠狠色综合日日小说| 欧美成人综合一区| 欧美连裤袜在线视频| 亚洲在线免费| 欧美在线日韩在线| 91久久久一线二线三线品牌| 日韩一级在线观看| 国产人成一区二区三区影院| 欧美 日韩 国产在线| 一区二区三区四区五区在线| 欧美午夜宅男影院| 久久久久9999亚洲精品| 久久亚洲不卡| 99亚洲精品| 午夜老司机精品| 亚洲黑丝在线| 亚洲午夜久久久久久久久电影院 | 欧美激情1区2区3区| 欧美日韩国产成人| 久久久91精品国产| 欧美精品一区二区三区在线看午夜 | 亚洲最新在线视频| 国产精品天天看| 欧美激情中文字幕一区二区| 欧美私人网站| 母乳一区在线观看| 国产精品久久久久免费a∨大胸 | 亚洲乱亚洲高清| 国产婷婷一区二区| 亚洲美女网站| 在线不卡视频| 亚洲一区自拍| 99热在这里有精品免费| 欧美在线高清视频| 一区二区欧美日韩视频| 久久福利视频导航| 亚洲一区二区三区欧美| 麻豆成人小视频| 欧美中文字幕视频| 欧美日韩国产三区| 蜜桃av一区二区| 国产日产欧美精品| 夜夜嗨av一区二区三区四季av| 伊人色综合久久天天| 亚洲午夜精品一区二区三区他趣| 亚洲黄色天堂| 久久久久国色av免费看影院| 欧美一级片一区| 国产精品成人免费| 91久久精品国产| 在线观看视频一区二区欧美日韩| 亚洲私人影吧| 亚洲欧美日韩综合国产aⅴ| 欧美屁股在线| 欧美高清日韩| 亚洲国产精品传媒在线观看 | av不卡在线观看| 亚洲精品一级| 欧美aaaaaaaa牛牛影院| 欧美成人免费在线观看| 黄色一区二区三区| 美女视频黄a大片欧美| 国产精品美女黄网| 亚洲深夜福利| 亚洲欧美综合网| 国产女人精品视频| 一区二区三区免费在线观看| 亚洲一级网站| 国产情人节一区| 欧美一级成年大片在线观看| 久久精品国产精品亚洲综合| 国产性做久久久久久| 久久成人免费| 欧美激情精品久久久久久大尺度| 亚洲国产三级网| 欧美日韩国产不卡| 在线亚洲观看| 久久久国产精品一区| 一区在线免费观看| 欧美国产丝袜视频| 99ri日韩精品视频| 欧美一区二区免费| 在线观看的日韩av| 欧美日韩国产经典色站一区二区三区| 亚洲另类在线一区| 久久成人免费视频| 亚洲第一精品电影| 欧美日韩视频专区在线播放| 香蕉久久夜色| 亚洲高清视频在线观看| 午夜亚洲福利| 亚洲电影在线看| 欧美日韩免费在线视频| 亚洲欧美日韩综合aⅴ视频| 欧美1区3d| 午夜精品美女自拍福到在线 | 午夜一区二区三视频在线观看| 国产视频一区二区三区在线观看| 久久九九99视频| 亚洲精品一区二| 久久乐国产精品| 亚洲影视在线播放| 在线观看日韩专区| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲精品1区2区| 久久精品欧美| 日韩一级黄色av| 国产亚洲欧洲997久久综合| 欧美成人在线网站| 亚洲在线免费视频| 亚洲欧洲免费视频| 久久综合久久久久88| 亚洲性线免费观看视频成熟| 亚洲第一色在线| 国产欧美一区二区三区视频| 欧美人在线观看| 久久久午夜精品| 香蕉乱码成人久久天堂爱免费 | 国内偷自视频区视频综合| 欧美人与性动交α欧美精品济南到| 久久久精品网| 午夜精品久久一牛影视| 亚洲精品欧洲精品| 亚洲国产精品久久精品怡红院 | 亚洲第一偷拍| 免费久久久一本精品久久区| 久久激情综合| 亚洲欧美日韩爽爽影院|