记录VC 6.0操作Excel记录
来源:互联网 发布:unity3d 路径动画 编辑:程序博客网 时间:2024/05/29 19:43
其实这个功能在度娘一搜大把的代码,其实文中的代码大部分都是出自度娘,只是为了便于自己的记忆与查询,我在这里重复的记录一下代买。我自己定义了一个CExcelOper 的类,该类封装了基本的函数,也没什么好说的,将代码贴上来:
头文件 ExcelOper.h
#include "excel.h"
#include "comdef.h"
#include "COMUTIL.H"
//#include "StructData.h"
class CExcelOper
{
public:
CExcelOper();
virtual ~CExcelOper();
_Application m_oExcelApp; // Excel程序
_Worksheet m_oWorkSheet; // 工作表
_Workbook m_oWorkBook; // 工作簿
Workbooks m_oWorkBooks; // 工作簿集合
Worksheets m_oWorkSheets; // 工作表集合
Range m_oCurrRange; // 使用区域
BOOL InitialExcel();
BOOL OpenExcel(LPCSTR lpstrFileName);
long GetCurrentRowNum();
// BOOL WriteDataToFIR(long lCurrentRow,pstCHResult pdata,CString strSN);
void Search3TempMaxMinValue(int nArryCount,double *pdbArryData,double *pdbGetMaxValue,double* pdbGetMinValue);
BOOL CloseExcel(BOOL bSave,LPCSTR lpstrFileName);
void JudgeSNIsExsit(int nCurrRoe,LPCSTR lpstrSN,long *pnGetCurrRow);
BOOL ReadSourceCurve();
BOOL CalcBW();
BOOL WriteBWToExcel();
void YieldToPeers();
BOOL SearchMinILIndex(double *pdbData,int nCount,int* pnMinIndex);
BOOL SearchBWIndex(int nType,double *pdbData,double dbdeta,int nCount,int nTotalCount,int nCenterIndex,int *pnGetIndex);
double *pdbWL;
double *pdbReadPower[24];
double m_pdbBW[24];
};
下面是CPP
/////////////////////////////////////////////////////////
//函数说明:
// 初始化Excel组件
//Add by wanxin
//Time:20151013
//////////////////////////////////////////////////////////
BOOL CExcelOper::InitialExcel()
{
// if (CoInitialize(NULL)!=0)
// {
// AfxMessageBox("初始化Excel组件支持库失败!");
// return FALSE;
// }
//启动Excel
if (!m_oExcelApp.CreateDispatch( _T( "Excel.Application" ), NULL ) )
{
::MessageBox( NULL, _T( "创建Excel服务失败!" ), _T( "错误提示!" ), MB_OK | MB_ICONERROR);
return FALSE;
}
//设置为显示
m_oExcelApp.SetVisible(FALSE);
m_oWorkBooks.AttachDispatch( m_oExcelApp.GetWorkbooks(), TRUE ); //没有这条语句,下面打开文件返回失败。
//
return TRUE;
}
/////////////////////////////////////////////////////////
//函数说明:
// 打开Excel文件
//Add by wanxin
//Time:20151013
//////////////////////////////////////////////////////////
BOOL CExcelOper::OpenExcel(LPCSTR lpstrFileName)
{
LPDISPATCH lpDisp = NULL;
COleVariant covTrue((short)TRUE);
COleVariant covFalse((short)FALSE);
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
Range oCurCell;
// 打开文件
lpDisp = m_oWorkBooks.Open( lpstrFileName,
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing) );
// 获得活动的WorkBook( 工作簿 )
m_oWorkBook.AttachDispatch( lpDisp, TRUE );
// 获得活动的WorkSheet( 工作表 )
m_oWorkSheet.AttachDispatch( m_oWorkBook.GetActiveSheet(), TRUE );
return TRUE;
}
///////////////////////////////////////////////////////////
//函数说明:
// 获得当前sheet行数
//Add by wanxin
//Time:20151013
//////////////////////////////////////////////////////////
long CExcelOper::GetCurrentRowNum()
{
long lgUsedRowNum = 0;
m_oCurrRange.AttachDispatch( m_oWorkSheet.GetUsedRange(), TRUE );
m_oCurrRange.AttachDispatch( m_oCurrRange.GetRows(), TRUE );
lgUsedRowNum = m_oCurrRange.GetCount();
return lgUsedRowNum;
}
- 记录VC 6.0操作Excel记录
- PHP excel操作记录
- excel操作技巧记录
- Delphi操作Excel日志记录
- VC记录
- NPOI之Excel for .NET操作记录
- 学习记录:python serial 库&excel操作
- python excel和csv处理操作记录
- 使用VB操作Excel(随笔记录)
- 多线程记录操作记录
- vc中把数据库记录表导入Excel
- vc中把数据库记录表导入Excel .
- 使用VC++6.0操作EXCEL
- 操作记录
- 操作记录
- 操作记录
- alfresco用户操作日志记录,以及操作记录的Excel导出
- VC操作sqlite3数据库插入blob字段(记录)
- Java学习笔记(八)异常及图形界面
- 我们的智慧型生活离我们还有多远
- java集合之EnumSet
- Android开发相关的Blog推荐
- Java学习笔记(九)图形界面
- 记录VC 6.0操作Excel记录
- 跳台阶问题
- Leetcode NO.102 Binary Tree Level Order Traversal
- 【笨木头Unity】入门之旅007:Demo之四处找死(二)_主角移动和旋转
- cpu是怎样工作的?
- java Web相关的知识技能
- Java学习笔记(十)观察者模式及适配器模式
- swift 快速奔跑的兔几 本节的内容是:SceneKit 约束
- Android 实战 - 个人APP乐逗项目(内部音乐播放器实现,开源MaskProgressView使用)