MFC 简单输出EXCEL - (OLE)
三图胜千言:
就是酱紫:
//打印领料表 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)相关推荐
- MFC输出EXCEL文档的过程总结
于目前的工作内容涉及到了几处需要输出EXCEL表格的内容,因此在网上也查找了些资料,在下面总结下,以方便使用: 1.当你输出的内容已经在输出的时候全部知道,并且输出格式已经固定,那么你就可以使用下面的 ...
- (原创)不带模板的DOI输出EXCEL
前面介绍了OLE输出EXCEL有个最大的特点就是慢,因为其是基于单元格层次的一个个操作去填充数据,而DOI技术采用面向对象的方法实现,解决了这个问题.至于为什么能解决,有兴趣的可以慢慢研究. 既然是使 ...
- MFC Office读写Excel文件,插入图片
简述 在 Java 中对 Excel 操作很方便,但是在 C++ 中对 Excel 操作却不是那么方便了,C++ 中有几种方法可以对 Excel 操作,但是大部分方法要么是读写较慢,要么是操作的功能不 ...
- Asp.net输出Excel文件并且下载该文件以及某些细节问题解决
使用asp.net输出Excel文件并且下载,网上资源很多 我也是参照网上资源写的 简单流程,就是页面上方一个datagrid控件或者gridview控件,后来绑定数据到控件上,然后输出控件呈现的ht ...
- Flask后端实践 连载十三 Flask输出Excel报表
Flask后端实践 连载十三 Flask输出Excel报表 tips: 简单实现Flask输出Excel报表 本文基于python3编写 代码仓库 项目场景 由于项目是工程上的使用,不仅需要对采集的数 ...
- MFC 简单的MD5计算器
MFC 简单的MD5计算器 一.简述 记--使用开源MD5计算代码+MFC实现简单的文件MD5计算器. 1.支持拖拽文件或目录. 2.支持拖拽多个文件或目录. 3.支持 ...
- c语言程序设计编写钻石图形,C++简单输出钻石菱形图效果
C++简单输出钻石菱形图效果 本文实例讲述了C++简单输出钻石菱形图效果的方法.分享给大家供大家参考,具体如下: /* * 作 者: 刘同宾 * 完成日期:2012 年 11 月 25 日 * 版 本 ...
- 使用MFC自动化操作Excel文档
使用MFC自动化操作Excel文档 项目中要用到MFC操作Excel文件,在网上搜的结果,有把Excel当数据库处理的,也有直接操作Excel的,最终在MSDN上看到的结果,测试后觉得好用些. 使用基 ...
- 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.在需要开启控制台窗口的地方调用 ...
- Struts2利用stream直接输出Excel
Struts2利用stream直接输出Excel http://www.blogjava.net/usherlight/archive/2008/06/23/210135.html 在利用网页展示查询 ...
最新文章
- vue 模板_简化版的 vue 页面模板语法
- 用C#对ADO.NET数据库完成简单操作
- 组合计数 ---- codeforces1312 D. Count the Arrays
- 工业机器人应用行业大盘点
- 【 FPGA 】FIR 滤波器结构和优化(二)之系数填充(Coefficient Padding)
- 如何同时启动多个Tomcat服务器
- 用fieldset标签轻松实现Tab选项卡效果
- python移除系统多余大文件
- Spring Cloud Alibaba 简介
- C++实现单链表的反序
- jackson 读取多文件_Spring Boot系列之读取配置
- 以太坊geth节点各种报错(求助)
- python 玩公众号游戏_从零基础开始,用python手把手教你玩跳一跳小游戏,直接打出高分...
- STM32F103/429串口IAP+Ymodem升级
- zabbix 4.0 安装配置
- JS打印对象的方法将Object转换为String的函数
- visio是什么软件
- h5浏览器——扫码功能
- 与计算机专业的社会学的论文,计算机专业研究生论文致谢词
- Pandas创建透视表教程
热门文章
- 6 - VC Bound (P[BAD]的真正上限)
- Java多线程看着一篇足够了!
- 浅谈Eclipse dropins插件安装的坑(附m2e的各个版本插件下载)
- Spring 最常用的 7 大类注解,史上最强整理!
- “红孩儿”成中科院博士!做CTO身价过亿!
- 快手二面:@Component,@Service等注解是如何被解析的?
- 卧槽!我的IDEA中XML显示屎黄色,怎么去掉?
- Elasticsearch 最佳实践!
- Nacos 1.3.0 来了,基于全新内核构建!
- 不想一直做底层码农的请进~