【前言】工作或学习中可能需要实现基于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
基于贝叶斯分类的中文垃圾信息分类识别核心核心代码,可直接运行的源程序。
publicvoidloadTrainingDataChinies(FiletrainingDataFile,StringinfoType){//加载中文分词其NLPIR.init("lib");//System.out.println(trainingDataFile.isFile()+"==============");//尝试加载学习数据文件try{//针对学习数据文件构建缓存的字符流,利用其可以采用行的方式读取学习数据BufferedReaderfileReader=newBufferedReader(newFileReader(trainingDataFile));//定义按照行的方式读取学习数据的临时变量Stringdata="";//循环读取学习文件中的数据while((data=fileReader.readLine())!=null){//System.out.println("*****************************");//System.out.println(data+"000000000000000000000");//按照格式分割字符串,将会分割成两部分,第一部分为ham或spam,用于说明本行数据是有效消息还是垃圾消息,第二部分为消息体本身//String[]datas=data.split(":");//对消息体本身进行简单分词(本学习数据均为英文数据,因此可以利用空格进行自然分词,但是直接用空格分割还是有些简单粗暴,因为没有处理标点符号,大家可以对其进行扩展,先用正则表达式处理标点符号后再进行分词,也可以扩展加入中文的分词功能)//首先进行中文分词//System.out.println(datas[1]+"------------------------");//if(datas.length>1){//System.out.println(datas.length);Stringtemp=NLPIR.paragraphProcess(data,0);//System.out.println(temp);String[]words=temp.split("");
2025/8/1 3:41:15 14KB 垃圾信息 文本分类 贝叶斯
1
基于官网版本4.1.10。
在官网demo的基础上,采用微软企业库,增加保存数据库的功能,传参方式保存。
下载后,vs2010打开,找asp.net目录下的demo.aspx,此文件已经修改,建sql数据库test,建表Temp,列为col测试通过。
修改webconfig连接字符串即可。
欢迎下载交流
2025/7/11 5:02:32 1.8MB kindeditor
1
学习python与OpenGLmywxmain.py为主调用文件File->Open:打开模型文件,示例为input.datTool->solid:设置模型为实体显示Tool->wire:设置模型为线框显示Tool->solid+wire:设置模型为实体+线框显示File->Merge:在模型上加入场数据,示例为温度场数据temp.datViewField->temperature:可显示温度场云图鼠标操作:左键按下移动为旋转模型移动,光照效果等功能还未加入。
现有功能也有待改进。
2025/7/7 5:02:45 27KB 有限元 后处理 python openGL
1
MATLAB中AR模型功率谱估计中AR阶次估计的实现-psd_my.rar(最近看了几个关于功率谱的问题,有关AR模型的谱估计,在此分享一下,希望大家不吝指正)(声明:本文内容摘自我的毕业论文——心率变异信号的预处理及功率谱估计)(按:AR模型功率谱估计是对非平稳随机信号功率谱估计的常用方法,但是其模型阶次的估计,除了HOSA工具箱里的arorder函数外,没有现成的函数可用,arorder函数是基于矩阵SVD分解的阶次估计方法,为了比较各种阶次估计方法的区别,下面的函数使用了'FPE','AIC','MDL','CAT'集中准则一并估计,并采用试验方法确定那一个阶次更好。
)………………………………以上省略……………………………………………………………………假设原始数据序列为x,那么n阶参数使用最小二乘估计在MATLAB中实现如下:Y=x;Y(1:n)=[];m=N-n;X=[];%构造系数矩阵fori=1:m  forj=1:n      X(i,j)=xt(ni-j);  endendbeta=inv(X'*X)*X'*Y';复制代码beta即为用最小二乘法估计出的模型参数。
此外,还有估计AR模型参数的Yule-Walker方程法、基于线性预测理论的Burg算法和修正的协方差算法等[26]。
相应的参数估计方法在MATLAB中都有现成的函数,比如aryule、arburg以及arcov等。
4.3.3AR模型阶次的选择及实验设计文献[26]中介绍了五种不同的AR模型定阶准则,分别为矩阵奇异值分解(SingularValueDecomposition,SVD)定阶法、最小预测定误差阶准则(FinalPredictionErrorCriterion,FPE)、AIC定阶准则(Akaika’sInformationtheoreticCriterion,AIC)、MDL定阶准则以及CAT定阶准则。
文献[28]中还介绍了一种BIC定阶准则。
SVD方法是对Yule-Walker方程中的自相关矩阵进行SVD分解来实现的,在MATLAB工具箱中arorder函数就是使用的该算法。
其他五种算法的基本思想都是建立目标函数,阶次估计的标准是使目标函数最小化。
以上定阶准则在MATLAB中也可以方便的实现,下面是本文实现FPE、AIC、MDL、CAT定阶准则的程序(部分):form=1:N-1  ……    %判断是否达到所选定阶准则的要求  ifstrcmp(criterion,'FPE')    objectfun(m1)=(N(m1))/(N-(m1))*E(m1);  elseifstrcmp(criterion,'AIC')    objectfun(m1)=N*log(E(m1))2*(m1);  elseifstrcmp(criterion,'MDL')    objectfun(m1)=N*log(E(m1))(m1)*log(N);  elseifstrcmp(criterion,'CAT')    forindex=1:m1        temp=temp(N-index)/(N*E(index));    end    objectfun(m1)=1/N*temp-(N-(m1))/(N*E(m1));  end    ifobjectfun(m1)>=objectfun(m)    orderpredict=m;    break;  endend复制代码orderpredict变量即为使用相应准则预测的AR模型阶次。
(注:以上代码为结合MATLAB工具箱函数pburg,arburg两个功率谱估计函数增加而得,修改后的pburg等函数会在附件中示意,名为pburgwithcriterion)登录/注册后可看大图程序1.JPG(35.14KB,下载次数:20352)下载附件 保存到相册2009-8-2820:54上传登录/注册后可看大图程序2.JPG(51.78KB,下载次数:15377)下载附件 保存到相册2009-8-2820:54上传下面本文使用3.2.1实验设计的输出结果即20例经预处理的HRV信号序列作为实验对象,分别使用FPE、AIC、MAL和CAT定阶准则预测AR模型阶次,图4.1(见下页)为其中一例典型信号使用不同预测准则其目标函数随阶次的变化情况。
从图中可以看出,使用FPE、AIC以及MDL定阶准则所预测的AR模型阶次大概位于10附近,即阶次10左右会使相应的目标函数最小化,符合定阶准则的要求,使用CAT定阶准则预测的阶次较小,在5~10之间。
图4.2(见下页)为另一例信号的阶次估计情况,从中也可以得到同样的结论。
(注,实验信号为实验室所得,没有上传)登录/注册后可看大图图片1.JPG(28.68KB,下载次数:5674)下载附件 保存到相册2009-8-2820:54上传
2025/6/27 16:08:25 6KB matlab
1
FontCreatorProfessional软件简介:FontCreator是一款易用的字体制作、字体编辑软件。
它可以创建、修改ttf,otf,ttc格式的字体文件,并生成可在任意设备使用的标准字体文件。
是Windows系统下制作编辑字体的必备软件。
使用方法:使用FontCreator_v9.0注册工具.rar里面的注册工具算出序列号后,它将询问是否导入到注册表中,此时先不要点“是”;
此时打开C:\Users\Administrator\AppData\Local\Temp\hlfc8.reg文件,修改“[HKEY_CURRENT_USER\Software\High-Logic\FontCreator\8.0\”为“[HKEY_CURRENT_USER\Software\High-Logic\FontCreator\9.0\”,再手动导入到注册表中,即可完成专业版的注册。
注意:注册机算号界面可以自定义用户名(第一个输入框)和机构(第二个输入框),它不支持中文,填入中文将会注册失败!注册后切勿上网检查最新版本,一经检查,注册码就可能失效。
在软件的选项-高级-检查更新,设置为“从不”(最好用防火墙禁止它联网)。
注册机可能为杀毒软件报毒,不会危及到您个人隐私;
如不放心请勿使用;
可直接导入本压缩包事先准备的hlfc9.reg文件导入到注册表中。
2025/4/8 18:51:16 11.66MB FontCreator 字体设计软件
1
图书馆借阅系统数据库设计2.5.1按借阅表查询历史借阅信息  (用1表示已经归还,0表示未归还)select*fromBorrow  whereBis=0;2.5.2查询到期未还的所有借阅者记录(借阅者编号,姓名,图书名称,借阅日期,应还日期)用1表示已经归还,0表示未归还selectReader.Rno,Reader.Rname,Book.Bname,Borrow.Bstart,Borrow.BendfromReader,Book,BorrowwhereReader.Rno=Borrow.RnoandBook.Bno=Borrow.BnoandBis=0;2.5.3按出版的统计被借阅次数,结果按降序排列,若只要显示前三,如何实现?selectBook.Bname,temp.Bno,numfromBOOK,(selecttop3Borrow.BnoBno,COUNT(Borrow.Rno)numfromBorrowGROUPBYBorrow.BnoorderbyBorrow.Bnodesc)tempwhereBook.Bno=temp.Bno
2025/3/3 12:52:57 185KB 图书借阅系统 数据库设计
1
#include#include#include#includeusingnamespacestd;intw=0;//尾数累加器intp=0;//指数累加器intj=0;//十进制小数位数计数器inte=1;//用来记录十进制数的符号,当指数为正时为1,为负时为-1inti=0;//用来标志元素位置intd=0;//用来表示每个数值型元素对应的数值constintN=40;//用来确定输入识别符的最大长度chardata[N];//存放输入的识别符boolis_digit;//标志是否是数字stringCJ1;//确定是整形还是实型doubleCJ2;//记数值//函数声明voidcheck(charc);//检查首字母是否是数字的函数voiddeal_integer(charc);//处理识别符的整数部分voiddeal_point(charc);//用来处理小数部分voiddeal_index(charc);//用来处理指数部分voids_next();//确定实型voidz_next();//确定整型voidlast();//计算CJ2voiderror();//程序中错误处理程序voiddeal();//处理函数主体intmain(){//主函数coutdata;deal();//处理函数主体last();//计算CJ2system("pause");return0;}voidcheck(charc)//判断输入的首字母是否是数字{is_digit=isdigit(c);while(is_digit!=true){//输入的首字母不是数字时coutdata;check(data[0]);}}voiddeal_integer(charc){//处理识别符的整数部分d=(int)c-48;w=w*10+d;i++;if(isdigit(data[i])!=0)//下一个仍是数值时,调用程序本身deal_integer(data[i]);}voiddeal_point(charc){//用来处理小数部分inttemp=i;if(isdigit(c)!=0)//是数值字符时deal_integer(c);else{error();//错误处理程序deal();//处理函数主体}j=i-temp;//记录十进制小数位数}voiddeal_index(charc){//用来处理指数部分if(c=='-'){e=-1;i++;}//是'-'号时else{if(c=='+')i++;//是'+'号时else{if(isdigit(c)==false)//非数值字符时{error();//错误处理程序deal();//处理函数主体}else
2024/12/19 11:09:24 33KB 无符号数的词法分析程序
1
《高等应用数学问题的MATLAB求解》一书的配书光盘。
供大家参考学习本光盘包括如下目录:“CAI教学材料”包含全套的PowerPoint文件,可以直接用于教学,具体请参见该目录中的readme.pps文件说明。
目前包含的为中文版辅助材料。
最新版本将在下面给出的“MATLAB大观园”网站不定期更新。
英文版教学辅助材料也将在该网站给出,适于双语教学。
“例题全部代码”包含本书全部例题的MATLAB语句。
文件命名方法为examp章号_例题号.m,例如书中例3-5对应的文件名为examp3_5.m。
为能使得本书例题方便执行,可以在MATLAB的命令窗口中由File/SetPath菜单将例题所在目录包含在内。
“开发函数和使用资源”包含作者为本书开发的全套函数;
一些可以用于符号运算的新函数放在了@sym子目录下;
rsda子目录下为“粗糙集数据处理工具箱”,该工具箱原作者为张雪峰,由薛定宇修改后定稿。
本书建议使用的其他免费工具箱均可以从给出的MATLAB大观园直接下载,其最新版本可以从下面的地址直接免费下载。
(1)bnb工具箱,书中第6章介绍的非线性整数规划程序。
下载地址:http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=95&objectType=file(2)gaot工具箱,用遗传算法求解最优化问题的工具箱。
为了避免和MATLAB7.0版本的新遗传算法与直接搜索工具箱在函数名上的冲突,这里将主函数名改为gaopt.m,相应的函数调用语句也作了适当的改动。
下载地址:http://www.ie.ncsu.edu/mirage/GAToolBox/gaot/http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=2797&objectType=file(3)lpsolve工具箱,整数线性规划的工具箱,由C语言通过mex格式调用,如果在您的MATLAB环境下不能正确使用该工具箱的dll文件,则说明MATLAB版本不兼容,需要您自己运行该目录的lp_mex.m文件重新生成dll文件。
下载地址:ftp://ftp.ics.ele.tue.nl/pub/lp_solve/http://www.netlib.org/ampl/solvers/lpsolve/(4)nit_new工具箱,是数值积分工具箱的修改版,原版适合于MATLAB4.X,为能在当前MATLAB版本下运行,对个别文件做了相关修正。
下载地址:http://www.matlab-world.com/progs/toolbox/nit.zip本书所涉及的TeXPoint2.0.3插件是由美国加州Berkeley大学开发的,包括3个文件,其最新版本可以到开发者的网站免费下载。
下载地址:http://raw.cs.berkeley.edu/texpoint/TeXPoint2.0.3插件所包括的3个文件也可以分别在如下地址下载:http://www.matlab-world.com/temp/TexPoint2000-2.0.3.msihttp://www.matlab-world.com/temp/TexPoint2002-2.0.3.msihttp://www.matlab-world.com/temp/TexPoint2003-2.0.3.msi相关网站地址列表:MATLAB大观园,作者维护的MATLAB教学与资源网站。
网站地址:http://www.matlab-world.comMATLAB语言与应用论坛,作者维护的论坛,讨论MATLAB方面的问题。
论坛地址:http://matlab.netsh.net
2024/10/27 14:25:24 20.09MB MATLAB 应用数学问题
1
FTPClient的jar包FTPClientftpClient=newFTPClient();ftpClient.connect("ftp.foo.com");ftpClient.login("user01","pass1234");ftpClient.download("C:\\Temp\\&quo;t;,"README.txt");//Eventuallyotheroperationshere...ftpClient.disconnect();
2024/10/12 5:49:39 1.8MB JAVA FTP FTPClient jar包
1
共 55 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡