c++ 对 EXCEL 读写的封装

ExcelOp.h

#pragma once

//http://b217dgy.blog.51cto.com/5704306/1215234
//http://www.blogjava.net/jinheking/archive/2005/07/19/5150.html 合并单元格
//http://blog.csdn.net/qinghezhen/article/details/9906023
//http://blog.csdn.net/gyssoft/article/details/1592104
//http://read.pudn.com/downloads100/doc/fileformat/411493/C++/ComTypeLibfor7/comexcel/excel10/comexcel.cpp__.htm
//http://www.cnblogs.com/fullsail/archive/2012/12/28/2837952.html 使用OLE高速读写EXCEL的源码
//http://blog.csdn.net/handsing/article/details/5461070
//http://www.cnblogs.com/xianyunhe/archive/2011/09/13/2174703.html
//http://www.update8.com/Program/C++/27229.html
//http://bbs.csdn.net/topics/390091827 
#include "stdafx.h"  

//OLE的头文件
#include "CRange.h"
#include "CWorkbook.h"
#include "CWorkbooks.h"
#include "CWorksheet.h"
#include "CWorksheets.h"
#include "CApplication.h"

class CExcelOp
{
public:
	CExcelOp(void);
	~CExcelOp(void);


public:
	void ShowInExcel(BOOL bShow);

	///检查一个CELL是否是字符串
	//BOOL    IsCellString(long iRow, long iColumn);
	///检查一个CELL是否是数值
	//BOOL    IsCellInt(long iRow, long iColumn);

	void SetCell(long irow, long icolumn,CString new_string);
	///得到一个CELL的String
	CString GetCell(long iRow, long iColumn);
	CString GetCellByName(CString rowName,CString colName);

	///得到整数
	//int     GetCellInt(long iRow, long iColumn);
	///得到double的数据
	//double  GetCellDouble(long iRow, long iColumn);

	///取得行的总数
	int GetRowCount();
	///取得列的总数
	int GetColumnCount();

	///使用某个shet,shit,shit
	BOOL LoadSheet(long table_index,BOOL pre_load = FALSE);
	///通过名称使用某个sheet,
	BOOL LoadSheet(const TCHAR* sheet,BOOL pre_load = FALSE);
	///通过序号取得某个Sheet的名称
	CString GetSheetName(long table_index);

	///得到Sheet的总数
	int GetSheetCount();

	///打开文件
	BOOL OpenExcelFile(const TCHAR * file_name);
	///关闭打开的Excel 文件,有时候打开EXCEL文件就要
	void CloseExcelFile(BOOL if_save = FALSE);
	//另存为一个EXCEL文件
	void SaveasXSLFile(const CString &xls_file);
	///取得打开文件的名称
	CString GetOpenFileName();
	///取得打开sheet的名称
	CString GetLoadSheetName();

	///写入一个CELL一个int
	//void SetCellInt(long irow, long icolumn,int new_int);
	///写入一个CELL一个string
	//void SetCellString(long irow, long icolumn,CString new_string);

public:
	///初始化EXCEL OLE
	static BOOL InitExcel();
	///释放EXCEL的 OLE
	static void ReleaseExcel();
	///取得列的名称,比如27->AA
	static char *GetColumnName(long iColumn);

protected:

	//预先加载
	void PreLoadSheet(); 

public:
	///打开的EXCEL文件名称
	CString       open_excel_file_;

	CWorkbooks    m_Books;
	CWorkbook     m_Book;
	CWorksheets   m_sheets;
	CWorksheet    m_sheet;
	CRange        m_Rge;

 	static CApplication m_app;

	///是否已经预加载了某个sheet的数据
	BOOL          already_preload_;

	///Create the SAFEARRAY from the VARIANT ret.
	COleSafeArray ol
  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值