- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC向Excel读写数据详细方法课案
MFC读写Excel详细步骤
准备工作:
打开开发环境VC或VS新建一个基于对话框的简单工程;
通过类向导添加类--类型库中的MFC类
打开创建类对话框
选择文件,位置编辑框填入Excel.exe的详细目录,可以通过浏览选择,在接口下方选择_Application(应用), _Workbook(视窗),Workbooks(整个视窗),Worksheets(单个表单),Worksheets(整个表单),Range(元素集合)六个基本的接口并生成类。选择接口后单击向右的单箭头即可,双箭头是生成所有接口的类;
生成类之后将添加的几个类的头文件中的
#import E:\\Microsoft Office\\Office14\\EXCEL.EXE no_namespace
注释掉,加上#includeafxdisp.h。
然后编译,出现下面这俩个错误;点击DialodBoxA找到错误位置将DialodBox改为_DialodBox;再编译,没有错误;
warning C4003: “DialogBoxA”宏的实参不足
error C2059: 语法错误:“,”
在要操作Excel类的CPP文件中包含头文件:
准备工作完成。
向Excel写数据:
CFileDialog dlg(FALSE, .xlsx,NULL, OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,Microsoft Excel Files(*.xls)|*.xls|Microsoft Excel Files(*.xlsx)(推荐)|*.xlsx|All Files (*.*)|*.*||);
dlg.m_ofn.lpstrTitle =保存到Excel;
if (dlg.DoModal() == IDOK)
{
//获取路径
CString strFileName=dlg.GetPathName();
CWorkbooks books;
CWorkbook book;
CApplication app;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
CMyFont font;
CRange cols;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
if (!app.CreateDispatch(Excel.Application))
{
this-MessageBox(无法创建Excel应用!);
return;
}
books=app.get_Workbooks();
book=books.Add(covOptional);
sheets=book.get_Worksheets();
sheet=sheets.get_Item(COleVariant((short)1));
//获得(A,1)(B,1)两个单元格
range=sheet.get_Range(COleVariant(A1),COleVariant(B6));
//设置公式“=RAND()*100000”
range.put_Formula(COleVariant(=RAND()*1000));
//选择整列,并设置宽度为自适应
cols = range.get_EntireColumn();
cols.AutoFit();
//设置字体为粗体
font = range.get_Font();
font.put_Bold(COleVariant((short)TRUE));
//设置数字格式为货币型
//range.put_NumberFormat(COleVariant($0.00));
CString Range327[]={C1,C2,C3,C4,C5,C6};
CString fileinfo[]={齿形,齿向,齿距,左齿面,右齿面,径跳};
for(int i=0;i6;i++)
{
range = sheet.get_Range(COleVariant(Range327[i]), COleVariant(Range327[i]));
range.put_Value2(COleVariant(fileinfo[i]));
}
/*
//获得坐标为(C,2)单元格 //显示
文档评论(0)