三图胜千言

就是酱紫

//打印领料表
void CKnifeDlgDlg::PrintCurUsedTabel(int order)
{
// TODO: Add your command handler code here
char 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 == )
{
//反序
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))); //得到全部Cells
range.AttachDispatch(sheet.get_Cells()); for( long title_col = ; title_col < title.size() ; title_col++ )
{
range.put_Item(
_variant_t((long)), //行
_variant_t((long)title_col+), //列
_variant_t(title[title_col].c_str())); //数据
} //下面是向第二行的前十个单元格中输入1到10,十个数字
for( long data_row = ; data_row < dataSrc.size() ; data_row++ )
{
for( long data_col = ; data_col < title.size() ; data_col++ )
{
long row = data_row+;
long col = data_col+;
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

MFC 简单输出EXCEL - (OLE)的更多相关文章

  1. (原创)带模板的OLE输出EXCEL

    其实带模板的OLE输出EXCEL就是将要输出的EXCEL中一些拥有固定值(如标题,表头行等)的单元格先填充好数据和设置好格式后作为模板上传到SAP 中.这样后续在输出EXCEL时只需从SAP中将模板下 ...

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

    目前我已知的EXCEL输出方式有3种: 1.GUI_DOWNLOAD函数输出(适用于简单无格式要求的输出). 2.OLE输出(适用于对EXCEL格式输出有特殊要求的,但是因其填充数据和设置格式是基于一 ...

  3. 用java从0生成一个简单的excel

    用java从0生成一个简单的excel 目标 用代码实现对一个excel的基础操作,包括创建,插入文字,(好像就这些了),生成的excel可以用wps打开,如果直接用c++的文件流会生成假的xls表格 ...

  4. PHP链式操作输出excel(csv)

    工作中经常会遇到产品运营让导出一些简单的比较规范的数据,这时候要是有一个简单的方法可以用就简单多了.下面是我的一个输出简单的excel(csv)的方法类,用到了链式操作.说到链式操作,在jquery中 ...

  5. xBIM IFC 输出 Excel 报表

    目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...

  6. Unity用Excel.dll简单读取Excel内容

    Unity用Excel.dll简单读取Excel内容 需要Excel.dll 需要如下三个命名空间 using System.IO; using Excel; using System.Data; 1 ...

  7. JasperReport报表中输出Excel时,部分列不显示的问题

    JasperReport开源报表功能强大,是我们WEB系统中做报表开发的一个强有力的工具,上手也比较简单.我碰到的问题是进行报表输出时,在html网页中显示正常,但如果导出为Excel时,部分列不显示 ...

  8. LeetCode Excel Sheet Column Title (输出excel表的列名称)

    题意:给一个数字n,输出excel表的列名称. 思路:其实观察可知道,是个26进制的标记而已.那就模拟一下,每次计算一位时就先左移1位,再进行计算. class Solution { public: ...

  9. 利用Apache POI 实现简单的Excel表格导出

    1.利用POI API实现简单的Excel表格导出 首先假设一个学生实体类: package com.sun.poi.domain; import java.io.Serializable; impo ...

随机推荐

  1. 多点触控之MotionEvent.ACTION_MASK作用

    ACTION_MASK在Android中是应用于多点触摸操作,字面上的意思大概是动作掩码的意思吧. 在onTouchEvent(MotionEvent event)中,使用switch (event. ...

  2. Bootstrap-下拉框 Combobox

    Bootstrap下拉框 Combobox显示效果如下: 源代码: <select class="combobox"> <option></optio ...

  3. Linux下Join命令

    Linux下Join命令 最近新上线算法,打算分析起点书籍点击率的波动,原来已经有流程每天每本书籍的点击率数据(文件).之前这种情况都是写代码对不同天的进行合并,后来发现linux下直接就有join命 ...

  4. Java中Map的使用

    Map以按键/数值对的形式存储数据,和数组很类似,在数组中存在的索引,它们本身也是对象.       Map的接口       Map---实现Map       Map.Entry--Map的内部类 ...

  5. RHCA学习笔记:RH442-Unit5 队列原理

    NIT 5 Queuing Theory 队列原理 目标: 1.明白性能调优的关键术语       2. 应用队列技术解决性能问题       3.明白性能调优的复杂性   5.1    Introd ...

  6. URI URL

    http://www.cnblogs.com/ACFLOOD/p/5533022.html

  7. 安装完Kali linux 之后 需要配置的一些 常用软件 记录

    apt 阿里云开源镜像站 deb http://mirrors.aliyun.com/kali sana main non-free contribdeb http://mirrors.aliyun. ...

  8. 获取tcl开发工具

    本篇文章对tcl脚本的解释工具获取和编辑工具进行一个简单的介绍,工欲善其事,必先利其器,掌握好解释工具的用法,能够使后续的脚本开发工作更加顺利.从源代码的获取到编译,详细解释在linux和window ...

  9. 鼠标移动到表格的TD上的时候显示成一个手型的样子怎么做?

    在除了IE6的情况下,可以通过CSS的:hover伪类来实现: 假如你想设定的固定区域为: <div id="test"></div>,那么只需要在CSS样 ...

  10. DevExpres表格控件运行时动态设置表格列

    本文是系列文章,陆续发表于电脑编程技巧与维护杂志. DevExpres产品是全球享有极高声誉的一流控件套包产品!国内典型用户包括:用友.金蝶.神州数码.工信部.中国石化.汉王科技等众多大中型科技型企业 ...