【前言】工作或学习中可能需要实现基于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
基于VS2010的C#代码编写的Wallisl滤波,可直接运行
2025/11/10 19:45:12 59KB Wallis滤波
1
时间显示包含日期,星期,(VS2010)
2025/11/10 17:08:50 296KB 时间显示
1
应用追赶法求解线性方程组的fortran代码,平台用的是VS2010,IVF开发
2025/11/9 21:39:49 909KB fortran 追赶法
1
多线程异步串口通信,通过底层API实现,VS2010环境编码在本人博客中有详尽的文档说明,介绍串口通信的知识http://blog.csdn.net/mingojiang/article/details/7713529
2025/11/6 15:21:38 138KB 串口通信 异步串口通信 串口编程
1
对libcurl-7.51.0的封装库(VS2010),全新编译,接口丰富,简单易用,支持http,gzip解压缩,https,无需复杂的设置,具体使用方法可参考本人博客:http://blog.csdn.net/antihips/article/details/51752545
2025/11/5 18:01:04 5.59MB libcurl
1
适用于vs2010的图像处理算法,包括SSR,MSR,MSRCR等retinex改进算法,方便大家学习交流和项目开发,有问题请随时提问。

2025/11/2 11:35:38 24KB retinex
1
学习过程当中的小实验~使用时,任选一个运行的终端作为服务器,其余的用户终端都在这个服务器的协调下交换信息
2025/11/1 13:39:31 97.39MB vs2010 网络编程
1
G代码解释器,包含.NC格式测试用例,编译环境为VS2010
2025/11/1 12:41:34 8.1MB G代码解释器 VS2010
1
Teigha.NET3.03.9、Teigha.NET3.09.10、Teigha.NET4.00.10、DWGdirect3.02.8网上流传的几个版本使用汇总及资源。
汇总总结了在c#VS2010下各种测试使用情况,分别列举WebApp和windowsapp引用条件。
2025/10/25 6:58:32 40.09MB Teigha CAD
1
共 776 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡