VC2010对Excel的操作

更新时间:2023-11-23 00:56:37 阅读: 评论:0

原谅我过去不懂-乘虚而入的意思

VC2010对Excel的操作
2023年11月23日发(作者:糗事)

VC2010Excel的操作

1. 创建新的C++工程

创建基于对话框的MFC程序

2. 添加库、添加Excel类库

在工程名上右键,选择“添加”“类”(或者点击菜单栏的“项目”->“添加类”

选择“TypeLib中的MFC类”MFC Class From TypeLib

类来源选“注册表”,在可用的类型库中选择“Microsoft Excel 11.0 Object Library<1.5>”在接

口列表框中选择需要的类,在此,我们选择

_Application,_Workbook,Worksheet,Range,Workbooks,Worksheets这六个就可以了。

可以看到,六个类被添加了进来。

3. 修改头文件

分别将加进来的六个头文件上面的“

#import "C:Program

FilesMicrosoft " no_namespace

注释掉。

4. 添加头文件

stdAfx.h头文件中添加加进来的这几个头文件

#include "CApplication.h"

#include "CRange.h"

#include "CWorkbook.h"

#include "CWorkbooks.h"

#include "CWorksheet.h"

#include "CWorksheets.h"

5. 修改错误

编译,会出现两个错误:

crange.h(335): warning C4003: DialogBoxW”宏的实参不足

crange.h(335): error C2059: 语法错误:,

双击错误提示,定位在错误行,

VARIANT DialogBox()

{

VARIANT result;

InvokeHelper(0xf5, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);

return result;

}

将该函数名“前面加“_”下划线,即“_

DialogBox()DialogBox()”,这样就可以编译成功了。

6. 在对话框中添加一个编辑框,并为其关联一CEdit类型变量m_Path添加“打开”按钮,

实现打开一已经存在的Excel文件。并将路径显示在编辑框中。实现代码如下。

void CExportToExcelDlg::OnBnClickedButtonOpen()

{

CFileDialog file(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,

_T("EXCEL文件t(*.xls;*.xlsx)|*.xls;*.xlsx||"),AfxGetMainWnd());

{

CString strPath=file.GetPathName();

m_Path.SetWindowTextW(strPath);

CApplication app;

CWorkbook book;

CWorkbooks books;

if (!app.CreateDispatch(_T("ation")))

{

MessageBox(_T("Error!Creat Excel Application Server Faile!"));

exit(1);

}

//Dispatch(_Workbooks(),true);

if(file.DoModal()==IDOK)

//Dispatch((_variant_t(strPath)));

books = app.get_Workbooks();

book = books.Add(_variant_t(strPath));

app.put_Visible(true);

//结尾,释放

eDispatch();

eDispatch();

eDispatch();

app.Quit();

}

}

7. 在对话框中添加“写入”按钮,实现新建一Excel文件(存在则覆盖),并向文件中写入

数据。实现代码如下。

void CExportToExcelDlg::OnBnClickedButtonWrite()

{

CString strFile = _T("D:x");

COleVariant

covTrue((short)TRUE),

covFal((short)FALSE),

covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

CApplication app;

CWorkbook book;

CWorkbooks books;

CWorksheet sheet;

CWorksheets sheets;

CRange range;

CFont font;

if (!app.CreateDispatch(_T("ation")))

{

MessageBox(_T("Error!Creat Excel Application Server Faile!"));

}

books = _Workbooks();

//Dispatch(_Workbooks());可代替上面一行

book = (covOptional);

//Dispatch((covOptional),true); 可代替上面一行

sheets=_Worksheets();

//Dispatch(_Worksheets(),true); 可代替上面一行

sheet = sheets.get_Item(COleVariant((short)1));

//Dispatch(_Item(_variant_t("sheet1")),true); 可代替上面一行

//下面两行,是向A1中写入"Yeah!I can write data to excel!"

range = _Range(COleVariant(_T("A1")),COleVariant(_T("A1")));

range.put_Value2(COleVariant(_T("Yeah!I can write data to excel!")));

//下面是向第二行的前十个单元格中输入110,十个数字

for(long i=1;i<11;i++)

_Item(_variant_t((long)2),_variant_t((long)i),_variant_t((long)i));

//设置列宽

range = sheet.get_Range(COleVariant(_T("A1")),COleVariant(_T("J1")));

range.put_ColumnWidth(_variant_t((long)5));

//显示表格

app.put_Visible(TRUE);

//保存

pyAs(COleVariant(strFile));

_Saved(true);

//结尾,释放

book.ReleaDispatch();

books.ReleaDispatch();

app.ReleaDispatch();

();

}

8. 在对话框中添加列表控件,并关联变量m_Grid,并设置显示为报表样式。在对话框中

添加“写入列表”按钮,实现将对话框中已有的表写入到Excel中。实现代码如下。

在初始化函数中,先初始化列表。

//设置列表视图的扩展风格

m_endedStyle(LVS_EX_FLATSB //扁平风格显示滚动条

|LVS_EX_FULLROWSELECT //允许整行选中

|LVS_EX_HEADERDRAGDROP //允许整列拖动

//单击选中项 |LVS_EX_ONECLICKACTIVATE

|LVS_EX_GRIDLINES); //画出网格线

//设置表头

m_Column(0,_T("编号"),LVCFMT_LEFT,100,0);

m_Column(1,_T("姓名"),LVCFMT_LEFT,100,1);

m_Column(2,_T("所属部门"),LVCFMT_LEFT,100,2);

//向列表中插入数据

int count = 0;

m_Item(count,_T("001"));

m_mText(count,1,_T("张一"));

m_mText(count++,2,_T("销售部"));

m_Item(count,_T("002"));

m_mText(count,1,_T("列二"));

m_mText(count++,2,_T("研发部"));

m_Item(count,_T("003"));

m_mText(count,1,_T("宇三"));

m_mText(count++,2,_T("采购部"));

m_Item(count,_T("004"));

m_mText(count,1,_T("宙四"));

m_mText(count,2,_T("宣传部"));

再编写按钮的响应函数

void CExportToExcelDlg::OnBnClickedButtonWritelist()

{

// TODO: 在此添加控件通知处理程序代码

CString strFile = _T("D:");

COleVariant

covTrue((short)TRUE),

covFal((short)FALSE),

covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

CApplication app;

CWorkbook book;

CWorkbooks books;

CWorksheet sheet;

CWorksheets sheets;

CRange range;

for (int tnum=0;tnum

{

for (int num=0;num<3;num++)

{

if (!tnum)

{

_Item(_variant_t((long)(tnum+1)),_variant_t((long)(num+1)),

_variant_t(sText[num]));

}

el

{

_Item(_variant_t((long)(tnum+1)),_variant_t((long)(num+1)),

_variant_t(m_mText(tnum-1,num)));

}

}

}

//保存

pyAs(COleVariant(strFile));

_Saved(true);

按【打开】按钮,出现打开对话框,可选择Excel打开。

按【写入】按钮,打开Excel文件。

按下【写入列表】,打开Excel文件。

孙少东-金秋

VC2010对Excel的操作

本文发布于:2023-11-23 00:56:37,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/170067219798835.html

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

本文word下载地址:VC2010对Excel的操作.doc

本文 PDF 下载地址:VC2010对Excel的操作.pdf

上一篇:Excel2010
下一篇:返回列表
标签:excel2010
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|