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

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>
            欧美电影电视剧在线观看| 欧美第一黄色网| 欧美精品v国产精品v日韩精品| 久久精品夜色噜噜亚洲a∨| 亚洲一区欧美| 亚洲一区二区视频在线| 亚洲专区在线视频| 久久精品视频免费播放| 久久久久免费观看| 亚洲电影免费在线观看| 欧美一级专区| 欧美国产精品v| 亚洲欧洲日夜超级视频| 亚洲大片精品永久免费| 亚洲色诱最新| 久久综合色一综合色88| 欧美日韩免费高清| 国产一级精品aaaaa看| 91久久精品久久国产性色也91| 亚洲第一在线综合在线| 亚洲欧美激情四射在线日| 免费观看在线综合色| 在线午夜精品| 欧美—级a级欧美特级ar全黄| 国产日韩在线播放| 99国产精品国产精品久久| 久久国内精品视频| 一区二区精品国产| 欧美韩国在线| 国内精品久久久| 亚洲永久字幕| 亚洲欧洲在线一区| 久久午夜精品一区二区| 国产欧美午夜| 亚洲一区成人| 亚洲精品黄色| 免费美女久久99| 精品69视频一区二区三区| 性欧美videos另类喷潮| 欧美福利视频在线观看| 蜜臀久久久99精品久久久久久| 免费日韩成人| 国产在线拍揄自揄视频不卡99| 亚洲无限av看| 亚洲精品久久久蜜桃| 久久先锋资源| 伊人久久婷婷| 久久久www成人免费无遮挡大片| 亚洲美女中文字幕| 欧美日韩国产高清| 亚洲免费电影在线观看| 久久蜜桃资源一区二区老牛| 亚洲一区二区三区精品视频 | 中文在线不卡视频| 亚洲人成在线免费观看| 欧美成人视屏| 日韩一区二区免费高清| 亚洲国内高清视频| 裸体一区二区三区| 亚洲高清在线视频| 欧美激情精品久久久久| 欧美大胆成人| 这里只有精品丝袜| 夜夜爽99久久国产综合精品女不卡 | 久久综合久久久| 亚洲视频在线观看三级| 亚洲综合首页| 国产老肥熟一区二区三区| 欧美一区二区女人| 亚洲欧美激情精品一区二区| 国产美女一区二区| 久久美女性网| 欧美成人免费小视频| 99视频精品| 亚洲男女毛片无遮挡| 黑人一区二区| 亚洲精品中文字幕女同| 国产一区二区看久久| 久久夜色精品国产亚洲aⅴ| 经典三级久久| 亚洲国产高清一区| 欧美日韩国产精品一区| 亚洲欧美日韩精品久久久久| 欧美一区二区在线免费观看| 小嫩嫩精品导航| 亚洲精品美女| 亚洲精品久久久久久久久久久久| 欧美日韩卡一卡二| 欧美在线观看视频在线| 久久久久久国产精品mv| 亚洲精品国产系列| 亚洲永久在线观看| 亚洲区国产区| 亚洲中无吗在线| 亚洲电影免费在线观看| 亚洲精品之草原avav久久| 国产精品v亚洲精品v日韩精品| 久久综合中文色婷婷| 欧美午夜精品久久久久免费视 | 国产精品视频xxx| 久久久精品国产免大香伊| 免费欧美高清视频| 欧美在线视频一区二区| 欧美精品v国产精品v日韩精品| 欧美一区二区三区免费在线看| 欧美激情亚洲激情| 美女国内精品自产拍在线播放| 欧美日韩一区高清| 欧美成年人网| 黄色成人av网站| 欧美怡红院视频| 亚洲字幕一区二区| 欧美激情一二三区| 快射av在线播放一区| 国产乱理伦片在线观看夜一区 | 午夜一区不卡| 亚洲午夜精品国产| 欧美成ee人免费视频| 久久综合五月| 国产在线高清精品| 一区二区三区免费看| 亚洲国产精品va在线看黑人 | 一本一本a久久| 久久九九电影| 久久久久久**毛片大全| 欧美日韩mp4| 亚洲欧洲另类国产综合| 亚洲国产三级网| 亚洲欧美在线看| 欧美一区二区三区视频| 国产精品mm| 亚洲永久免费av| 久久精品道一区二区三区| 欧美精品三级日韩久久| 欧美成人一二三| 亚洲激情视频在线观看| 免费试看一区| 亚洲精品激情| 亚洲在线免费| 国产日韩在线亚洲字幕中文| 欧美视频一区二区三区…| 一本在线高清不卡dvd| 久久婷婷人人澡人人喊人人爽| 在线不卡中文字幕| 亚洲激情不卡| 亚洲三级毛片| 欧美高清在线视频| 亚洲第一区在线观看| 99国产精品私拍| 欧美日韩精品免费观看视一区二区 | 国产日韩欧美在线视频观看| 欧美亚洲三区| 免费亚洲婷婷| 夜夜嗨一区二区三区| 国产精品乱人伦中文| 欧美一区二区观看视频| 日韩一级黄色大片| 欧美电影在线观看完整版| 一本到12不卡视频在线dvd| 亚洲无人区一区| 韩国成人福利片在线播放| 欧美电影打屁股sp| 中文一区二区| 欧美成人一区二区在线| 亚洲一区日韩在线| 国产一区二区日韩精品欧美精品| 媚黑女一区二区| 99精品热视频| 久久久亚洲国产天美传媒修理工| 亚洲人www| 免费亚洲一区| 亚洲一二三区精品| 在线成人av.com| 欧美香蕉视频| 可以免费看不卡的av网站| 在线视频精品一区| 欧美成人综合一区| 欧美一级久久久| 一本色道久久88综合日韩精品| 国产精品福利久久久| 老色鬼久久亚洲一区二区| 亚洲国产一二三| 久久国产欧美精品| 亚洲性感美女99在线| 在线视频国内自拍亚洲视频| 欧美日韩视频不卡| 老司机午夜精品视频| 欧美一区二区在线免费观看 | 亚洲日韩欧美视频一区| 久久精品视频在线观看| 亚洲影音先锋| 精品成人在线观看| 国产区亚洲区欧美区| 欧美三级欧美一级| 欧美高清视频在线| 美女黄网久久| 久久久综合网站| 久久精品成人一区二区三区| 亚洲欧美国产毛片在线| 亚洲无限av看|