【前言】工作或学习中可能需要实现基于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
Qt线程任务队列demo,见博客https://blog.csdn.net/yonggandess/article/details/107227435
2025/11/14 0:42:57 4KB Qt线程队列
1
Pwdump7是一个免费的Windows实用程序,它能够提取出Windows系统中的口令,并存储在指定的文件中。
Pwdump7是Pwdump3e的改进版,该程序能够从Windows目标中提取出NTLM和LanMan口令散列值,而不管是否启用了Syskey(这是一个Windows账户数据库加密工具,是Windows下的一条命令)。
2025/11/4 3:04:03 413KB 密码破解
1
关于运输问题使用说明1. 将单位运价表写入“in.txt”中,格式为:(拿书中P102页作业题为例)#3410220111279202141618152555151510其中,第一行的‘#’表示一个问题的开始,是必须要的;
第二行中的34(中间用空格隔开,后面不能有空格)表示m和n,即单位运价表的行和列;
第三行到第五行10220111279202141618 表示单位运价表;
(中间用空格或TAB隔开) 第六行 15255 表示三个产地的产量;
第七行 5151510 表示四个销地的销量;
2. 程序将会把最有运输方案写在“out.txt”中,(该文件将由程序自动产生);
3. 改程序能解决平衡运输问题和平衡分配问题;
下面是书中部分运输问题和分配问题测试用例:(写入in.txt中)#3410220111279202141618152555151510#343113101928741057493656#348412694753437252610102015#35863755100847639682030302525201020#44210971541481314161141513911111111
2025/10/31 21:42:34 529KB 运筹学 运输问题 分配问题
1
笔者曾混迹过各种攻防演练活动,参与过防守方、攻击方,也算是大概了解了每一个队伍的任务~参加防守时印象尤为深刻,也跟一起防守的“战友”做过有趣的事情,例如:反打攻击队;
题外话说的有点多了,来说说为什么开发这样一个平台:作为一个防守方光看日志固然是枯燥无味的,偶尔来几次反向打击啥的,增添防守的乐趣~所以我想到了做这样一个系统,就是想在“空暇”时间能获取点“黑客攻击者”的“画像”。
本平台采用被动式的方式分析黑客攻击者画像,可扩展赋能蜜罐以及安全设备,将平台接口部署在蜜罐Web界面上即可,当攻击者访问所部署的Web界面即触发平台分析功能,对访问者进行分析,数据回传平台分析其网络身份、IP、IP定位:物理地址等信息。
AHRID信息展示平台支持接口授权的方式授权站点,已授权站点才可使用平台接口进行被动式的攻击者画像分析以及数据回传。
AHRID接口授权平台的分析功能采用模块化设计,可针对不同的分析功能新建不同的分析模块进而让平台的分析功能更加丰富完善(开源版本目前只支持JSONP探针模块)AHRID提交模块AHRID开源版使用授权使用登录进AHRID平台之后需要先添加接口授权:AHRID接口授权当添加完毕后,复制接口代码至蜜罐页面或需监测的页面中即可(建议复制到最后),这样就已经部署成功了,只需要等待攻击者触发数据回传功能,等待画像信息即可。
模块提交当已经发现一个JSONP劫持漏洞时,即可提交到AHRID平台上:JSONP劫持漏洞漏洞地址:http://my.website/dorabox/csrf/jsonp.php?callback=test要获取的信息:username模块提交说明:1.名字模块名字(建议使用英文)2.SRC存在JSONP劫持漏洞的URL地址3.回调参数值回调参数的值(参数=值)4.数据字段JSON字段(例如:{"username":"123"},要获取的是username即填写username;
例如:{"data":{"uid":"123"}},要获取的是uid即填写data.uid)5.信息展示地址一般填写无或者随意填写6.模块描述根据模块功能说明AHRID模块提交示例AHRID开源版设计概述当攻击者访问到部署了AHRID接口的页面,即触发JSONP探针获取攻击者已登录状态下的登录信息,回传登录信息+IP+UA,后端会对IP进行物理地址转换,最终将数据记录到数据库。
数据库结构表:Admin-列:id,username,password表:Hackinfo-列:hid,host,ip,user_agent,jsondata,creaye_time,times表:Plugins-列:pid,name,src,callback,columns,url,commit表:Apis-列:aid,hostIP地址转换依赖:GeoLite2-City.mmdbIP定位依赖:接口apis.map.qq.com、way.jd.com+取中心点依赖环境:Python2+Flask+Mysql所需网络环境:互联网(可出网)AHRID开源版搭建1.config.py配置文件修改需要配置的信息如下:USERNAME:Mysql用户名PASSWORD:Mysql用户密码HOST:Mysql主机地址PORT:Mysql端口SECRET_KEY:SESSION秘钥(建议16位以上随机英文字母+数字+特殊符号)TX_KEYS:腾讯接口KEYS(2个以上,参考:https://lbs.qq.com/webservice_v1/guide-ip.html)JCLOUD_KEY:京东云接口KEY(Github可白嫖)2.Mysql创建“ahrid”数据库3.执行如下代码pythonmanage.pydbinitpythonmanage.pydbmigrate4.启动服务:sudopythonapp.py默认端口为:80,可自行修改app.py文件如下代码部分server=pywsgi.WSGIServer(('0.0.0.0',80),app)
2025/10/29 11:37:37 57.82MB 威胁情报 黑产对抗 网络安全 信息安全
1
可以通过matlab读取excel表格并画图,可以索引至第n列,功能易实现,可验证
2025/10/29 4:29:40 283B matlab excel plot
1
第二次作业:1.编写点类(Point类),属性成员有x,y,都是double数据类型。
需要为Point类编写构造函数。
编写直线类(Line类),需要提供两点确定一条直线的函数功能。
如果两点重合,可以返回异常或者返回null引用来解决这个问题。
直线类的数据成员和函数成员请自行设计。
2.给定文本文件,文件名称为a.txt,文件内容为一个8行8列的字符矩阵,内容为1和0字符,请编程计算出该矩阵中水平方向或者垂直方向或者斜线方向连续1最多的个数。
例如:1100110110110101010101011100100001010101110011010001100011110000 3.编写程序求出1万以内的所有素数,并将这些素数输出到一个文本文件中,每行文本只包含一个素数数据。
该文本文件内容要求可以用记事本程序来查看。
4.编写程序求出1万以内的所有素数,然后再判断这些素数中哪些是由素数拼接而成的。
例如素数23就符合条件,23本身是素数,其由素数2,和素数3拼接(连接)组成。
素数29就不满足条件,2是素数,而9不是素数。
素数307不满足条件,不能忽略0. 7907这个素数符合条件,7是素数,907是素数。
需要把符合条件的拼接素数全部输出,并统计个数。
5.要求从控制台输入英语单词及单词解释两项数据,把录入的数据追加到文件中。
要求提供单词查询功能。
用户输入单词后,从单词库文件中查找,如果存在则输出该单词的解释。
注意,单词不能有重复,如果重复则覆盖替换以前的解释数据。
6.通过命令行参数输入一个文件夹的路径名称,然后编写程序找出该文件夹下文件名称重复并且文件大小也一样的文件,如果没有“重复文件”,则输出“没有重复文件”的提示,如果有,需要输出文件名称,和文件所在的文件夹路径(绝对路径)。
提示,需要遍历该文件夹下所有子文件夹,设计一个文件类,属性包括文件名称,文件路径,文件大小,然后进行“重复” 判断,如果文件重复,则需要记录并输出,有可能有文件名重复,但是文件大小不一样,重复的文件可能不止2个,可能 在不同的子文件夹下有多个文件重复。
7.霍夫曼编码实现压缩文本文件,见文件huffman.rar.对文件数据读写等功能已经实现,程序在Q2Resources.zip中。
Q2Resources.zip中的文件禁止修改。
请将TextZip.java文件所有未实现的函数按照要求给以实现。
2025/10/28 6:08:10 49KB Java
1
//题目:排序系统设计//功能:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,每个人持有一个正整数密码。
开始时任选一个正整数做为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m是停止报数,报m的人出列,将他的密码作为新的m值,从他的下一个人开始重新从1报数。
如此下去,直到所有人全部出列为止。
令n最大值取30。
要求设计一个程序模拟此过程,求出出列编号序列。
//分步实施:1初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
2完成最低要求:建立一个文件,包括某人5个人的情况。
3进一步要求:有兴趣的同学可以自己扩充系统功能。
//要求:1)界面友好,函数功能要划分好//2)总体设计应画一流程图//3)程序要加必要的注释//4)要提供程序测试方案//5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
2025/10/27 22:15:18 3KB 排序系统设计
1
此资源主要是python代码涵盖了人脸识别,深度学习,卷积神经网络等一些列的算法程序
2025/10/25 1:25:19 8.42MB 深度学习 python 卷积神经
1
自述文件该自述文件通常会记录启动和运行应用程序所需的所有步骤。
您可能要讲的内容:Ruby版本系统依赖配置数据库创建数据库初始化如何运行测试套件服务(作业队列,缓存服务器,搜索引擎等)部署说明...
2025/10/15 14:10:37 3.64MB CSS
1
共 789 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡