【前言】工作或学习中可能需要实现基于VC读\写Excel文件的功能,本人最近也遇到了该问题。
中间虽经波折,但是最终还是找到了解决问题的办法。
在此跟大家分享,希望对跟我同样迷茫过的同学们有所帮助。
1、程序功能1)打开一个excel文件;2)显示到CListCtrl上;3)新建一个Excel文件。
以上均在对话框中实现。
2、平台VC++20103、实现方法常用的Excel打开方式有两种1)通过数据库打开;2)OLE方式打开。
由于方式1)操作繁琐,经常出现莫名的错误,这里选用方式2).4、准备步骤首先新建一个Dialog窗体程序,添加listcontrol和两个按钮1)将ExcelLib文件夹拷贝到程序目录下;
2)将Export2Excel.h,Export2Excel.cpp两个文件添加到项目;
3)包含头文件,#include"ExcelLib/Export2Excel.h"通过以上步骤在程序中引入了可以读取Excle文件的CExport2Excel类;
5、打开excel文件通过按钮点击打开voidCExcelTestDlg::OnBnClickedButtonOpenExcel(){//获取文件路径CFileDialog*lpszOpenFile;CStringszGetName;lpszOpenFile=newCFileDialog(TRUE,"","",OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,"ExcelFile(*.xlsx;*.xls)|*.xls;*.xlsx",NULL);if(lpszOpenFile->DoModal()==IDOK){szGetName=lpszOpenFile->GetPathName();SetWindowText(szGetName);deletelpszOpenFile;}elsereturn;//打开文件//文件中包含多个sheet时,默认打开第一个sheetCExport2ExcelExcel_example;Excel_example.OpenExcel(szGetName);//获取sheet个数intiSheetNum=Excel_example.GetSheetsNumber();//获取已使用表格行列数intiRows=Excel_example.GetRowCount();intiCols=Excel_example.GetColCount();//获取单元格的内容CStringcs_temp=Excel_example.GetText(1,1);//AfxMessageBox(cs_temp);//Listcontrol上显示//获取工作表列名(第一行)CStringArraym_HeadName;m_HeadName.Add(_T("ID"));for(inti=1;iGetItemCount()>0){m_list.DeleteColumn(0);}//初始化ClistCtrl,加入列名InitList(m_list,m_HeadName);//填入内容//第一行是标题,所以从第2行开始CStringnum;intpos;for(introw=2;row<=iRows;row++){pos=m_list.GetItemCount();num.Format(_T("%d"),pos+1);m_list.InsertItem(pos,num);for(intcolum=1;colum<=iCols;colum++){//插入均从序号0开始m_list.SetItemText(pos,colum,Excel_e
2025/11/15 14:25:49 281KB VC++ Excel OLE VS2010
1
使用该模板需用“模板设置”插件做搭挡,它的下载地址:www.emlog.net/plugin/144,下载安装并启用后,再上传并启用当前模板,你会发现“设置”2个字,她是一切的开始……当前模板演示地址:www.ewceo.com/?demo=ewcms2_vip易玩印象CMS2【加强版】特点:1,在第1代基础上优化修改了诸多细节,应该是好看了许多(自我感脚);
2,配以“模板设置”插件让设置变得简单,一般情况下无需修改任何文件,让代码见鬼去吧;
3,可以设置LOGO类型并上传LOGO图片,头部文字内容显示三选一(站点副标题、最新微语、啥都木有)灵活实用;
4,可以设置模板主色、副色、背景色、强调色4种颜色,个性色彩无限制,比换肤还强大的节奏;
5,首页幻灯轮播图、图片列表均可指定分类,文字分类列表支持调取子分类,只需填上数字ID分类名、链接都搞定;
6,预设图片类型列表模板,它的名字是log_list_pic,在分类编辑模板项中填上即可;
7,广告内容、页脚链接均可轻松设置,能想到和做到的几乎都与“模板设置”插件搭上了;
8,文字很苍白,现实很丰满——勤看演示也许还会有惊喜……与许多开发者一样,偶一直在努力证明EMLOG的强大和无限可能性,这脚步貌似不会停止2014-9-2极小更新:2处针对低版本IE浏览器的兼容性修改;
(己买过该模板的朋友可以免费再次获取,盗版是不可以的)偶的Q号是77940140,也可以直接复制wpa.qq.com/msgrd?v=3&uin=77940140&site=qq&menu=yes到浏览器中打开临时会话
2025/10/28 7:23:07 122KB emlog模板
1
GDBFrontend是一个简单,灵活和可扩展的GUI调试器。
正在安装要求GDB=>8.2(使用python3)python3多路复用器PIP套件(PythonWheel)您可以使用pip安装GDBFrontend。
python3-mpipinstallgdbfrontend或如果您想安装特定的GIT快照:python3setup.pyinstall你可以跑gdbfrontendDeb软件包(Debian/Ubuntu/KDENeon)您可以通过deb软件包为基于Debian的发行版安装GDBFrontend。
您可以从以下命令安装它:echo"deb[trusted=yes]https://oguzhaneroglu.com/deb/./"|sudotee-a/etc/apt/sources.list>/dev/nullsudoaptupdatesudoaptinstallgdbfrontend使用APT安装后,您将获得有关APT升级的新版本的更新。
您可以使用
2025/10/21 4:11:34 15.24MB c debugger debugging cpp
1
Ai_Tips_ESP8266将ESP8266开发板与各种电子和机械组件结合使用的示例代码,如我的YouTube教程系列“ESP8266技巧与窍门”所示:*https://www.youtube.com/playlist?list=PLNFq0T6Z3JPsHwzvPQncip-kMIdWpnnip如果您喜欢我的工作,可以帮助我将更多的时间用于构建项目,编写代码以及制作有关它们的视频:您也可以从我的小型网上商店购买产品,以帮助资助此类未来的开源项目!我将始终竭尽全力在每个项目中,并发布所有设计文件和代码供您使用。
执照根据MIT许可证发布。
请检查LICENSE.txt以获取更多信息。
上面的所有文本都必须包含在任何重新分发中。
2025/10/14 9:17:09 1.17MB arduino esp8266 esp8266-arduino ArduinoC++
1
1)需要下载NUAA数据集;
2)结合NUAA数据集,完成根据list读取数据集,embedding,之后训练一个活体检测模型;
3)测试模型的性能
2025/9/30 3:34:58 74.91MB 活体检测 NUAA
1
用户对搜索出来的list点击后,去到下一个页面,但是也会把当前数据在当前页面做成一个历史记录,如果点击历史对应的标签会,把带着当时存下来的Id跳到detail页面
2025/9/29 14:15:31 52KB wx
1
1.实现List类型集合中汉字按拼音排序2.可以比较两个汉字谁前谁后3.得出汉字的大写拼音首字母
2025/9/18 6:47:21 45KB 拼音 排序 汉字
1
欢迎来到GitHubPages您可以使用的来维护和预览Markdown文件中网站的内容。
每当您提交到该存储库时,GitHubPages都将运行从Markdown文件中的内容重建站点中的页面。
降价促销Markdown是一种轻巧且易于使用的语法,可用于样式化您的文字。
它包括以下约定Syntaxhighlightedcodeblock#Header1##Header2###Header3-Bulleted-List1.Numbered2.List**Bold**and_Italic_and`Code`text[Link](url)and![Image](src)有关更多详细信息,请参见。
吉柯主题您的Pages网站将使用您在选择的Jekyll主题的布局和样式。
该主题的名称保存在Jekyll_conf
2025/9/9 8:22:30 1KB HTML
1
爬取指定标签List下评分8.5分以上的图书信息,包括书名、作者、评分、简介,并保存到excel,以标签分类,放到不同的sheet中。
核心代码:title=book.find_element_by_xpath('.//a[1]').text#获取书名zuozhe=book.find_element_by_xpath('.//div[1]').text.split('/',1)[0]jianjie=book.find_element_by_xpath('.//p[1]').text#获取简介worksheet.write(i,0,fenshu);#分数写入第i行的第一列worksheet.write(i,1,title);#书名写入第i行的第二列worksheet.write(i,2,zuozhe);#作者写入第i行的第三列worksheet.write(i,3,jianjie);#简介写入第i行的第四列
2025/9/2 5:16:26 3KB 豆瓣爬虫 Python selenium
1
自己写一个map+list的c++数据结构。
双迭代器,里面有有个简单例子。
2025/8/31 5:12:58 5KB 数据结构 字典链表
1
共 177 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡