电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

VC操作Excel文件保存

8页
  • 卖家[上传人]:cn****1
  • 文档编号:508918409
  • 上传时间:2024-01-09
  • 文档格式:DOC
  • 文档大小:37KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、VC操作Excel文件保存用VC对Excel文件进行写操作后,在程序结束前需要对一些对象进行收尾工作,如调用_Workbook:Save()方法(该方法是Microsoft提供的供VC调用的对Excel文件操作的标准方法,在文件excel9.cpp或excel.cpp中定义)保存文件。问题就出现在这里,若选取要保存的Excel文件以前不存在则程序创建一个同名的空Excel文件,对Excel表的操作实际是对其同名副本的操作,Save()方法会触发一个另存为的对话框,需要覆盖原来同名的空Excel文件,否则写入Excel的数据会丢失。若选取的Excel文件已经存在,则调用Save()方法不会触发另存为对话框,系统会自动保存写到Excel中的数据。需要说明的是,在调用Save()前,已经调用过SetAlertBeforeOverwriting(FALSE)和SetDisplayAlerts(FALSE)关掉一些警告窗口了。若调用SaveAs()方法,虽不会触发另存为对话框,但会出抛出找不到成员”的错误,这时保存写好的Excel文件后并重新打开发现数据还是丢失。想尽所有办法,可总无法去掉那个讨

      2、厌的另存为对话框,请各位大虾帮忙。多谢了!SaveAs()是excelapp的方法吗。xlApp.ActiveWorkbook.SaveAsC:excel.xlsxlApp.Quit我的没有问题。如今Excel是越来越重要了,在我们自己开发的程序中不免要和Excel打交道了。利用Automation技术,我们可以在不去了解数据库的情况下玩转Excel,而且你会发现一切竟如此轻松!好了,咱们开始吧,我不喜欢用长篇累牍的代码来故弄玄虚,所以下面的代码都是切中要害的片段,总体上是个连贯的过程,包括启动Excel,读取数据,写入数据,以及最后的关闭Excel,其中还包括了很多人感兴趣的合并单元格的处理。特别说明以下代码需要MFC的支持,而且工程中还要包含EXCEL2000的定义文件:EXCEL9.H,EXCEL9.CPP/变量定义_Applicationapp;Workbooksbooks;_Workbookbook;Worksheetssheets;_Worksheetsheet;Rangerange;RangeiCell;LPDISPATCHlpDisp;COleVariantvResul

      3、t;COleVariantcovTrue(short)TRUE),covFalse(short)FALSE),covOptional(long)DISP_E_PARAMNOTFOUND,VT_ERROR);/初始化COM的动态连接库if(!AfxOleInit()AfxMessageBox(无法初始化COM的动态连接库!);return;创建Excel2000服务器(启动Excel)if(!app.CreateDispatch(Excel.Application)AfxMessageBox(无法启动Excel服务器!);return;app.SetVisible(TRUE);使Excel可见app.SetUserControl(TRUE);/允许其它用户控制Excel/*打开c:1.xlsbooks.AttachDispatch(app.GetWorkbooks();lpDisp=books.Open(C:1.xls,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,c

      4、ovOptional,covOptional,covOptional,covOptional,covOptional);/得到Workbookbook.AttachDispatch(lpDisp);/得到Worksheetssheets.AttachDispatch(book.GetWorksheets();/得到当前活跃sheet/如果有单元格正处于编辑状态中,此操作不能返回,会一直等待lpDisp=book.GetActiveSheet();sheet.AttachDispatch(lpDisp);/读取已经使用区域的信息,包括已经使用的行数、列数、起始行、起始列RangeusedRange;usedRange.AttachDispatch(sheet.GetUsedRange();range.AttachDispatch(usedRange.GetRows();longiRowNum=range.GetCount();/已经使用的行数range.AttachDispatch(usedRange.GetColumns();/已经使用的列数/已使用区域的起始行,从1开始/已使用区域的

      5、起始列,从1开始longiColNum=range.GetCount();longiStartRow=usedRange.GetRow();longiStartCol=usedRange.GetColumn();/读取第一个单元格的值range.AttachDispatch(sheet.GetCells();range.AttachDispatch(range.GetItem(COleVariant(long)1),COleVariant(long)1).pdispVal);COleVariantvResult=range.GetValue();CStringstr;if(vResult.vt=VT_BSTR)/字符串str=vResult.bstrVal;elseif(vResult.vt=VT_R8)/8字节的数字str.Format(%f,vResult.dblVal);elseif(vResult.vt=VT_DATE)/时间格式SYSTEMTIMEst;VariantTimeToSystemTime(&vResult.date,&st);elseif(vResult.vt=V

      6、T_EMPTY)/单元格空的str=;读取第一个单元格的对齐方式,数据类型:VT_I4/读取水平对齐方式range.AttachDispatch(sheet.GetCells();iCell.AttachDispatch(range.GetItem(COleVariant(long(1),COleVariant(long(1).pdispVal);vResult.lVal=0;vResult=iCell.GetHorizontalAlignment();if(vResult.lVal!=0)switch(vResult.lVal)case1:/默认break;case-4108:/居中break;case-4131:/靠左break;case-4152:/靠右break;/垂直对齐方式iCell.AttachDispatch(range.GetItem(COleVariant(long(1),COleVariant(long(1).pdispVal);vResult.lVal=0;vResult=iCell.GetVerticalAlignment();if(vResult.lVal!

      7、=0)switch(vResult.lVal)case-4160:/靠上break;case-4108:/居中break;case-4107:/靠下break;设置第一个单元格的值HI,EXCEL!range.SetItem(COleVariant(1),COleVariant(1),COleVariant(HI,EXCEL!);/*/设置第一个单元格字体颜色:红色Fontfont;range.AttachDispatch(sheet.GetCells();range.AttachDispatch(range.GetItem(COleVariant(long(1),COleVariant(long(1).pdispVal);font.SetColor(COleVariant(long)0xFF0000);/合并单元格的处理/包括判断第一个单元格是否为合并单元格,以及将第一个单元格进行合并RangeunionRange;range.AttachDispatch(sheet.GetCells();unionRange.AttachDispatch(range.GetItem(COleVar

      8、iant(long)1),COleVariant(long)1).pdispVal);vResult=unionRange.GetMergeCells();if(vResult.boolVal=-1)/是合并的单元格/合并单元格的行数range.AttachDispatch(unionRange.GetRows();longiUnionRowNum=range.GetCount();/合并单元格的列数range.AttachDispatch(unionRange.GetColumns();longiUnionColumnNum=range.GetCount();/合并区域的起始行,列longiUnionStartRow=unionRange.GetRow();/起始行,从1开始longiUnionStartCol=unionRange.GetColumn();/起始列,从1开始elseif(vResult.boolVal=0)/不是合并的单元格/将第一个单元格合并成2行,3列range.AttachDispatch(sheet.GetCells();unionRange.AttachDispatch(range.GetItem(COleVariant(long)1),COleVariant(long)1).pdispVal);unionRange.AttachDispatch(unionRange.GetResize(COleVariant(long)2),COleVariant(long)3);unionRange.Merge(COleVariant(long)0);/合并单元格/将文件保存为2.xlsbook.SaveAs(COleVariant(C:2.xls),covOptional,covOptional,covOptional,covOptional,covOptional,0,covOptional,covOptional,covOptional,covOptional);关闭所有的book,退出Excelbook.Close(covOptional,COleVariant(OutFilename),covOptional);books.Close();app.Quit();/Excel保存Sheet.OleProcedure(SaveAs,FN

      《VC操作Excel文件保存》由会员cn****1分享,可在线阅读,更多相关《VC操作Excel文件保存》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.