C++读取excel表格1 创建mfc程序(这⾥以vs2013为例)
到这⾥直接点击完成即可。
2 添加读取excel⽂件⽤到的类  2.1 打开类向导
2.2 添加类
将_Application、_Workbook、_Worksheet、Workbooks、Worksheets添加到“⽣成的类”中3 添加完成后,到相关头⽂件,注释/删除
#import "D:\\software\\office2010\\Office14\\EXCEL.EXE"no_namespace
4 再次编译还是有错误
定位错误信息,将DialogBox()改为_DialogBox()
5 添加源码(最重要的⼀步)
5.1.Excel.h
//Excel.h
#pragma once
#include "CApplication.h"
#include "CRange.h"
#include "CWorkbook.h"
#include "CWorkbooks.h"
#include "CWorksheet.h"
#include "CWorksheets.h"
class Excel
{
private:
CString openFileName;
CWorkbook workBook;//当前处理⽂件
CWorkbooks books;//ExcelBook集合,多⽂件时使⽤
CWorksheet workSheet;//当前使⽤sheet
CWorksheets sheets;//Excel的sheet集合
CRange currentRange;//当前操作区域
bool isLoad;//是否已经加载了某个sheet数据
COleSafeArray safeArray;
protected:
static CApplication application;//Excel进程实例
static CApplication application;//Excel进程实例
public:
Excel();
virtual ~Excel();
void show(bool bShow);
//检查⼀个cell是否为字符串
bool isCellString(long iRow, long iColumn);
//检查⼀个cell是否为数值
bool isCellInt(long iRow, long iColumn);
/
/得到⼀个cell的string
CString getCellString(long iRow, long iColumn);getsavefilename
//得到⼀个cell的整数
int getCellInt(long iRow, long iColumn);
//得到⼀个cell的double数据
double getCellDouble(long iRow, long iColumn);
//取得⾏的总数
int getRowCount();
//取得列的整数
int getColumnCount();
//使⽤某个shell
bool loadSheet(long tableId, bool preLoaded = false);
bool loadSheet(CString sheet, bool preLoaded = false);
//通过序号取得某个shell的名称
CString getSheetName(long tableID);
//得到sheel的总数
int getSheetCount();
//打开excel⽂件
bool open(const char* fileName);
//关闭打开的excel⽂件
void close(bool ifSave = false);
//另存为⼀个excel⽂件
void saveAsXLSFile(const CString &xlsFile);
//取得打开⽂件的名称
CString getOpenFileName();
//取得打开sheel的名称
CString getOpenSheelName();
//向cell中写⼊⼀个int值
void setCellInt(long iRow, long iColumn,int newInt);
//向cell中写⼊⼀个字符串
void setCellString(long iRow, long iColumn, CString newString);
public:
//初始化 Excel_OLE
static bool initExcel();
//释放Excel_OLE
static void release();
//取得列的名称
static char* getColumnName(long iColumn);
protected:
void preLoadSheet();
};
5.2.Excel.cpp
//Excel.cpp
#include "stdafx.h"
#include <tchar.h>
#include "Excel.h"
COleVariant
covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CApplication Excel::application;
Excel::Excel() :isLoad(false)
{
}
Excel::~Excel()
{
//close();
}
bool Excel::initExcel()
{
//创建Excel 2000服务器(启动Excel)
AfxOleInit();  //先初始化ole
if (!application.CreateDispatch(_T("Excel.application"),nullptr))
{
MessageBox(nullptr,_T("创建Excel服务失败,你可能没有安装EXCEL,请检查!"),_T("错误"),MB_OK);        return FALSE;
}
application.put_DisplayAlerts(FALSE);
return true;
}
void Excel::release()
{
application.Quit();
application.ReleaseDispatch();
application = nullptr;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。