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

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>
            最新成人在线| 亚洲欧美日韩国产综合在线| 久热精品在线视频| 亚洲一区二区久久| 亚洲人成欧美中文字幕| 久久久久.com| 久久久久久亚洲综合影院红桃 | 久久人人爽人人爽爽久久| 久久精品二区| 欧美激情按摩在线| 欧美日韩妖精视频| 在线视频免费在线观看一区二区| 一区二区三区久久网| 99精品久久久| 欧美一区二区三区在线视频| 久久狠狠亚洲综合| 老司机免费视频一区二区三区| 欧美一区二区三区视频在线观看| 国产精品每日更新| 午夜在线观看欧美| 久久综合九色综合网站| 欧美亚洲三区| 日韩亚洲欧美在线观看| 91久久精品国产91久久性色tv | 国产精品美女在线| 亚洲人成在线影院| 久久夜色精品| 久久综合狠狠| 欧美日韩午夜剧场| 国产九九精品视频| 欧美三级小说| 国产综合久久久久久鬼色| 曰韩精品一区二区| 亚洲综合好骚| 亚洲国产日本| 宅男在线国产精品| 久久久五月天| 国内精品久久久久国产盗摄免费观看完整版| 亚洲精品国产精品国自产在线| 久久精品国产99精品国产亚洲性色| 91久久综合| 美日韩精品免费| 韩国一区电影| 欧美一区二区视频网站| 99精品热视频| 欧美日本三区| 亚洲美女中出| 亚洲国产精品t66y| 美国三级日本三级久久99| 韩日成人av| 蜜桃av一区| 久久久99国产精品免费| 国产一区二区成人久久免费影院| 亚洲综合首页| 一本大道久久a久久精品综合| 亚洲欧美激情诱惑| 国产精品自拍三区| 欧美一区二区三区在| 亚洲欧洲一二三| 男人的天堂成人在线| 在线播放精品| 欧美大尺度在线观看| 麻豆国产va免费精品高清在线| 国产日韩精品视频一区二区三区| 中文一区字幕| 亚洲精品视频免费观看| 欧美全黄视频| 欧美中文在线观看| 国产日韩精品一区二区| 久久av一区二区三区亚洲| 亚洲午夜av在线| 欧美私人啪啪vps| 国产精品99久久久久久白浆小说 | 久久国产精品99国产| 亚洲欧美激情四射在线日| 老牛国产精品一区的观看方式| 国产女人18毛片水18精品| 久久精品一区| 久久成人免费电影| 亚洲国产精品高清久久久| 久久久久**毛片大全| 欧美一区二区三区四区夜夜大片 | 亚洲专区国产精品| 亚洲国产精品欧美一二99| 亚洲女女女同性video| 亚洲一区免费看| 樱桃视频在线观看一区| 亚洲日本va在线观看| 国产精品你懂的| 久久丁香综合五月国产三级网站| 久久久久免费视频| 亚洲三级视频| 亚洲欧美日韩第一区| 国产午夜精品一区理论片飘花| 另类亚洲自拍| 美女网站在线免费欧美精品| 亚洲精品乱码视频| 一区二区三区免费网站| 国产日韩精品一区二区三区在线| 男女精品视频| 欧美午夜一区二区三区免费大片 | 久久九九免费| 欧美人牲a欧美精品| 欧美一级淫片aaaaaaa视频| 亚洲欧美日韩一区在线观看| 国产一区二区按摩在线观看| 艳妇臀荡乳欲伦亚洲一区| 好吊妞这里只有精品| 在线视频你懂得一区二区三区| 1024成人| 久久成人18免费观看| 亚洲欧美日韩国产一区| 欧美激情亚洲国产| 久久综合中文色婷婷| 欧美成人伊人久久综合网| 欧美影院在线播放| 欧美日韩在线精品| 欧美韩日高清| 国内精品久久国产| 欧美一级视频免费在线观看| 亚洲午夜av电影| 欧美国产日本高清在线| 男人天堂欧美日韩| 欧美中文字幕在线播放| 亚洲一区中文字幕在线观看| 欧美激情一区二区三级高清视频| 美女图片一区二区| 好看的av在线不卡观看| 亚洲欧美在线播放| 欧美一区二区三区视频在线观看 | 在线观看成人小视频| 午夜日韩激情| 欧美一区影院| 国产模特精品视频久久久久| 一区二区高清在线| 亚洲影视在线播放| 欧美色图麻豆| 亚洲视频在线观看网站| 亚洲制服av| 国产女优一区| 午夜精品久久久久久久久| 欧美一区二区日韩| 国产欧美日韩中文字幕在线| 亚洲欧美一区二区精品久久久| 性刺激综合网| 国产自产高清不卡| 久久亚洲精品一区| 美女脱光内衣内裤视频久久网站| 一区二区在线免费观看| 久久久久一区二区三区| 欧美第十八页| 亚洲精品一区二区三区樱花 | 亚洲视频www| 国产精品区二区三区日本| 亚洲欧美国产高清va在线播| 久久aⅴ乱码一区二区三区| 国产亚洲欧美激情| 久久久噜噜噜久久| 亚洲国产一区二区三区高清| 日韩视频二区| 国产精品亚洲а∨天堂免在线| 欧美一区二区三区视频在线观看 | 合欧美一区二区三区| 久久久久久久网站| 亚洲精品一区二区三区樱花| 午夜在线视频观看日韩17c| 黄色成人在线网址| 欧美高清视频一区| 亚洲一区二区三区影院| 蜜桃av久久久亚洲精品| 亚洲网站在线播放| 国内精品美女av在线播放| 欧美国产精品人人做人人爱| 性欧美video另类hd性玩具| 亚洲国产精品www| 欧美在线你懂的| 日韩视频一区二区三区在线播放免费观看 | 亚洲国产精品电影| 欧美日韩在线播放三区四区| 午夜视频在线观看一区二区三区| 久久综合给合| 亚洲一级黄色片| 在线日韩av片| 国产美女精品| 欧美日韩1区| 久久免费精品日本久久中文字幕| 999亚洲国产精| 欧美高清一区二区| 午夜激情亚洲| av不卡在线看| 亚洲国产成人高清精品| 国产欧美一区二区白浆黑人| 欧美经典一区二区三区| 久久精品1区| 亚洲在线免费| aa亚洲婷婷| 亚洲精品偷拍| 亚洲国产综合视频在线观看| 久久久久久久久久久久久久一区 | 日韩亚洲一区二区|