三图胜千言

就是酱紫

//打印领料表
void CKnifeDlgDlg::PrintCurUsedTabel(int order)
{// TODO: Add your command handler code herechar szFilters[] = "hgy Files (*.xls)|*.xls|All Files (*.*)|*.*||";CFileDialog fileDlg (FALSE, "xls", ReadName + ".xls",OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, NULL);fileDlg.m_ofn.lpstrTitle = "保存"; if( fileDlg.DoModal() == IDOK ){CString pathName = fileDlg.GetPathName();std::vector<std::map<std::string,std::string>> resultArr = YHdialog::GetOpResultListTool(_knifeclasses);std::vector<std::string> title;title.push_back("用料材料");title.push_back("厚度");title.push_back("数量");title.push_back("面积");std::vector<std::string> dataCol;dataCol.push_back("PanelMatrial");dataCol.push_back("Thickness");dataCol.push_back("PanelNum");dataCol.push_back("Allsize");if(order == 0){//反序
            std::reverse(resultArr.begin(),resultArr.end());}OnWriteDataExcel(pathName, title, dataCol, resultArr);MessageBox("保存完成");}
}//写EXCEL
void CKnifeDlgDlg::OnWriteDataExcel(CString savePath, std::vector<std::string> title,std::vector<std::string> dataMap, std::vector<std::map<std::string,std::string>> dataSrc)
{CString strFile = savePath;  COleVariant   covTrue((short)TRUE),   covFalse((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("Excel.Application")))  {  MessageBox(_T("Error!Creat Excel Application Server Faile!"));  }  books = app.get_Workbooks();  book = books.Add(covOptional);  sheets = book.get_Worksheets();  sheet = sheets.get_Item(COleVariant((short)1));  //得到全部Cells
    range.AttachDispatch(sheet.get_Cells());   for( long title_col = 0 ; title_col < title.size() ; title_col++ )  {range.put_Item(_variant_t((long)1),    //行_variant_t((long)title_col+1),    //列_variant_t(title[title_col].c_str()));  //数据
    }//下面是向第二行的前十个单元格中输入1到10,十个数字  for( long data_row = 0 ; data_row < dataSrc.size() ; data_row++ )  {for( long data_col = 0 ; data_col < title.size() ; data_col++ )  {long row = data_row+2;long col = data_col+1;CString info;info.Format("%s",dataSrc[data_row][dataMap[data_col]].c_str());range.put_Item(_variant_t(row),    //行_variant_t(col),    //列_variant_t(info));  //数据
        }}//保存
    book.SaveCopyAs(COleVariant(strFile));   book.put_Saved(true);  app.put_Visible(false); //释放对象
    range.ReleaseDispatch();   sheet.ReleaseDispatch();   sheets.ReleaseDispatch();   book.ReleaseDispatch();   books.ReleaseDispatch();  app.ReleaseDispatch();  //结尾,释放
    book.ReleaseDispatch();     books.ReleaseDispatch();     app.ReleaseDispatch();  app.Quit();
}

MFC OLE EXCEL

转载于:https://www.cnblogs.com/Again/p/5699027.html

MFC 简单输出EXCEL - (OLE)相关推荐

  1. MFC输出EXCEL文档的过程总结

    于目前的工作内容涉及到了几处需要输出EXCEL表格的内容,因此在网上也查找了些资料,在下面总结下,以方便使用: 1.当你输出的内容已经在输出的时候全部知道,并且输出格式已经固定,那么你就可以使用下面的 ...

  2. (原创)不带模板的DOI输出EXCEL

    前面介绍了OLE输出EXCEL有个最大的特点就是慢,因为其是基于单元格层次的一个个操作去填充数据,而DOI技术采用面向对象的方法实现,解决了这个问题.至于为什么能解决,有兴趣的可以慢慢研究. 既然是使 ...

  3. MFC Office读写Excel文件,插入图片

    简述 在 Java 中对 Excel 操作很方便,但是在 C++ 中对 Excel 操作却不是那么方便了,C++ 中有几种方法可以对 Excel 操作,但是大部分方法要么是读写较慢,要么是操作的功能不 ...

  4. Asp.net输出Excel文件并且下载该文件以及某些细节问题解决

    使用asp.net输出Excel文件并且下载,网上资源很多 我也是参照网上资源写的 简单流程,就是页面上方一个datagrid控件或者gridview控件,后来绑定数据到控件上,然后输出控件呈现的ht ...

  5. Flask后端实践 连载十三 Flask输出Excel报表

    Flask后端实践 连载十三 Flask输出Excel报表 tips: 简单实现Flask输出Excel报表 本文基于python3编写 代码仓库 项目场景 由于项目是工程上的使用,不仅需要对采集的数 ...

  6. MFC 简单的MD5计算器

    MFC 简单的MD5计算器 一.简述 记--使用开源MD5计算代码+MFC实现简单的文件MD5计算器. 1.支持拖拽文件或目录.         2.支持拖拽多个文件或目录.         3.支持 ...

  7. c语言程序设计编写钻石图形,C++简单输出钻石菱形图效果

    C++简单输出钻石菱形图效果 本文实例讲述了C++简单输出钻石菱形图效果的方法.分享给大家供大家参考,具体如下: /* * 作 者: 刘同宾 * 完成日期:2012 年 11 月 25 日 * 版 本 ...

  8. 使用MFC自动化操作Excel文档

    使用MFC自动化操作Excel文档 项目中要用到MFC操作Excel文件,在网上搜的结果,有把Excel当数据库处理的,也有直接操作Excel的,最终在MSDN上看到的结果,测试后觉得好用些. 使用基 ...

  9. C++ MFC控制台输出调试信息

    C++ MFC控制台输出调试信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1.#include <conio.h> 2.在需要开启控制台窗口的地方调用 ...

  10. Struts2利用stream直接输出Excel

    Struts2利用stream直接输出Excel http://www.blogjava.net/usherlight/archive/2008/06/23/210135.html 在利用网页展示查询 ...

最新文章

  1. vue 模板_简化版的 vue 页面模板语法
  2. 用C#对ADO.NET数据库完成简单操作
  3. 组合计数 ---- codeforces1312 D. Count the Arrays
  4. 工业机器人应用行业大盘点
  5. 【 FPGA 】FIR 滤波器结构和优化(二)之系数填充(Coefficient Padding)
  6. 如何同时启动多个Tomcat服务器
  7. 用fieldset标签轻松实现Tab选项卡效果
  8. python移除系统多余大文件
  9. Spring Cloud Alibaba 简介
  10. C++实现单链表的反序
  11. jackson 读取多文件_Spring Boot系列之读取配置
  12. 以太坊geth节点各种报错(求助)
  13. python 玩公众号游戏_从零基础开始,用python手把手教你玩跳一跳小游戏,直接打出高分...
  14. STM32F103/429串口IAP+Ymodem升级
  15. zabbix 4.0 安装配置
  16. JS打印对象的方法将Object转换为String的函数
  17. visio是什么软件
  18. h5浏览器——扫码功能
  19. 与计算机专业的社会学的论文,计算机专业研究生论文致谢词
  20. Pandas创建透视表教程

热门文章

  1. 6 - VC Bound (P[BAD]的真正上限)
  2. Java多线程看着一篇足够了!
  3. 浅谈Eclipse dropins插件安装的坑(附m2e的各个版本插件下载)
  4. Spring 最常用的 7 大类注解,史上最强整理!
  5. “红孩儿”成中科院博士!做CTO身价过亿!
  6. 快手二面:@Component,@Service等注解是如何被解析的?
  7. 卧槽!我的IDEA中XML显示屎黄色,怎么去掉?
  8. Elasticsearch 最佳实践!
  9. Nacos 1.3.0 来了,基于全新内核构建!
  10. 不想一直做底层码农的请进~