MFC 简单输出EXCEL - (OLE)
三图胜千言:
就是酱紫:
//打印领料表
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)的更多相关文章
- (原创)带模板的OLE输出EXCEL
其实带模板的OLE输出EXCEL就是将要输出的EXCEL中一些拥有固定值(如标题,表头行等)的单元格先填充好数据和设置好格式后作为模板上传到SAP 中.这样后续在输出EXCEL时只需从SAP中将模板下 ...
- (原创)不带模板的OLE输出EXCEL
目前我已知的EXCEL输出方式有3种: 1.GUI_DOWNLOAD函数输出(适用于简单无格式要求的输出). 2.OLE输出(适用于对EXCEL格式输出有特殊要求的,但是因其填充数据和设置格式是基于一 ...
- 用java从0生成一个简单的excel
用java从0生成一个简单的excel 目标 用代码实现对一个excel的基础操作,包括创建,插入文字,(好像就这些了),生成的excel可以用wps打开,如果直接用c++的文件流会生成假的xls表格 ...
- PHP链式操作输出excel(csv)
工作中经常会遇到产品运营让导出一些简单的比较规范的数据,这时候要是有一个简单的方法可以用就简单多了.下面是我的一个输出简单的excel(csv)的方法类,用到了链式操作.说到链式操作,在jquery中 ...
- xBIM IFC 输出 Excel 报表
目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...
- Unity用Excel.dll简单读取Excel内容
Unity用Excel.dll简单读取Excel内容 需要Excel.dll 需要如下三个命名空间 using System.IO; using Excel; using System.Data; 1 ...
- JasperReport报表中输出Excel时,部分列不显示的问题
JasperReport开源报表功能强大,是我们WEB系统中做报表开发的一个强有力的工具,上手也比较简单.我碰到的问题是进行报表输出时,在html网页中显示正常,但如果导出为Excel时,部分列不显示 ...
- LeetCode Excel Sheet Column Title (输出excel表的列名称)
题意:给一个数字n,输出excel表的列名称. 思路:其实观察可知道,是个26进制的标记而已.那就模拟一下,每次计算一位时就先左移1位,再进行计算. class Solution { public: ...
- 利用Apache POI 实现简单的Excel表格导出
1.利用POI API实现简单的Excel表格导出 首先假设一个学生实体类: package com.sun.poi.domain; import java.io.Serializable; impo ...
随机推荐
- Unity3D 导入贴图、模型等资源文件时自动设置参数
脚本继承至AssetPostprocessor, 存放在Editor目录下! using UnityEngine; using System.Collections; using UnityEdito ...
- RSA加密解密操作
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- Android AsyncTask运作原理和源码分析
自10年大量看源码后,很少看了,抽时间把最新的源码看看! public abstract class AsyncTask<Params, Progress, Result> { p ...
- Objective-C中的占位符,打印BOOL类型数据
常用的一些占位符: %@:字符串占位符 %d:整型 %ld:长整型 %f:浮点型 %c:char类型 %%:%的占位符 尽管有那么多的占位符,但是好像没有发现BOOL型的数据的占位符,这也是比较纠结的 ...
- requestFocusFromTouch , requestFocus
/*if(userNameEditText.isInTouchMode()){ userNameEditText.requestFocusFromTouch(); }else{ userNameEdi ...
- SpringMVC关于json、xml自动转换的原理研究[附带源码分析 --转
SpringMVC关于json.xml自动转换的原理研究[附带源码分析] 原文地址:http://www.cnblogs.com/fangjian0423/p/springMVC-xml-json-c ...
- 完全用LINUX工作
http://blog.csdn.net/e6894853/article/details/7881091 下面列出我常用的一些 Linux 程序.一个列表里可能有很多,那是为了方便你来选择,我列出了 ...
- JavaScript入门(4)
一.JS能做什么? 1.增强页面动态效果(如:下拉菜单.图片轮播.信息滚动等) 2.实现页面与用户之间的实时.动态交互(如:用户注册.登录验证等) 什么是变量?http://www.cnblogs.c ...
- xml、xhtml、html、dhtml的区别
1.XML 可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 可扩展标记语言可以对文档和数据进行结构化处理,从而能够在部门.客户和供应商之间进行交换,实现动态内 ...
- ScriptManager的用法
资料中如实是说: 1, ScriptManager(脚本控制器)是asp.net ajax存在的基础. 2, 一个页面只允许有一个ScriptManager,并且放在其他ajax控件的前面 ...