【前言】工作或学习中可能需要实现基于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
自定义Dialog,模拟支付密码输入框,可以自定义显示的图标。
EditText遮在背景View的上面,在afterTextChanged处理密码改变的逻辑。
2025/8/6 5:03:06 431KB Dialog
1
ABAP面试大全目录1.报表知识 61.1 基础知识 61.1.1 报表事件,有哪些? 61.1.2 报表选择画面 71.2 ALV报表 81.2.1 ALV报表实现的流程 81.2.2 显示ALV常用的两个FM 81.2.3 如何设置ALV中的热键 81.2.4 ALV显示中的小计 81.2.5 FMALV和OOALV的比较 81.3 WRITELIST 82.数据库知识 92.1 基础知识 92.1.1ABAP数据字典有哪些对象或元素? 92.1.2据库提交确认和数据库回滚取消语句 92.1.3什么是LUW 92.1.4简述modify、insert、update对数据库表做操作时的影响 92.1.5要描述域、数据元素、表字段之间的关系 92.1.6数据字典有几种缓冲方式,适用范围? 92.2 ABAP和数据库 102.2.1ABAP数据表的主索引是什么?索引的好处与坏处?与建索引的注意事项! 102.2.2ABAP透明表有哪几种数据类(dataclass)?对数据的存储有什么影响? 102.2.3SAP中有几种表,他们的区别是什么? 102.2.4什么是簇表(clustertable)?举出知道的簇表。
102.2.5找数据库表,有哪些常用的方法。
102.2.6如何建立数据库锁对象,激活锁对象产生的FunctionModule的名字为什么,在何处查看锁表的情况? 102.2.7更新FM分为V1和V2,那么首先会执行哪一种更新类型呢?每种类型又是以哪种模式(异步、同步或本地)执行的呢? 112.2.7使用OPENSQL注意原则 112.3 与表相关 112.3.1MM模块有哪些常用表格 112.3.2HR模块知识:HR里面存储HR主数据主要用到了哪些表? 112.3.3HR模块知识:HR程序在开发中常用的两个逻辑数据库是什么?分别对其进行描述 122.3.4HR模块知识:HR模块里面,如何修改HR的信息类型,具体如何实现 122.3.5财务模块:财务模块开发中常用的表有哪些,简单举例说明: 122.3.6PM常用的TABLE 122.3.6innerjoin与left-outerjoin的区别? 133.权限相关 143.1 什么是权限对象(AuthorizationObjects)?在ABAP程序中使用哪条语句进行授权检查? 143.2 与权限对象有关的事务代码有哪些? 144.DIALOG 154.1 DIALOG中的几个事件 154.2 何在TABLECONTROL中实现选中一行或多行的效果 154.3 DIALOG开发的常用几个控件是什么? 155.BDC 165.1 BDC录屏的事务代码 165.2 BDC与BAPI之间的区别 165.3 BDC录屏的注意事项 165.4谈谈BDC的运行模式和更新模式 166.增强 176.1什么叫增强?有哪些方式进行增强? 176.1.1UserEXIT 176.1.2Customerexit 176.1.3BADI 176.1.4EnhancementSpot 176.2如何建立增强? 176.3与增强相关的事务代码有哪些 186.4如何进行数据库表字段的增强?Append和Include的方式有何区别? 187.SMARTFORMS 197.1谈谈SmartForm中,Template和Table表格的区别 197.2SMARTFORM如何实现公司LOG打印,其步骤是什么? 197.3smartform中如何控制段落、单个字符输出格式? 198.RFC和BAPI 208.1RFC 208.1.1什么是RFC,有哪些通信模式? 208.1.2RFC中涉及到常用的事务代码有哪些? 208.1.3根据调用方式的不同,RFC接口提供了什么样的服务? 208.1.4RFC接口的具体功能包括哪些? 208.1.5在通过CALLFUNCTION语句进行远程功能调用的基本模式有哪些 208.1.6怎么创建一个支持远程调用的RFC 218.1.7怎么调用一个SAP标准RFC 218.1.8怎样建立RFC程序?RFC程序传递的参数都是传递值还是引用?如何建立函数组? 218.1.9怎么来维护这个DESTINATION(远程目标) 218.2BAPI 218.2.1什么是BAPI?你使用过哪些BAPI实现什么功能? 218.2.2什么是业务对象类型?它包含哪些主件? 218.2.3如何创建一个BAPI? 228.2.4编写BAPI的注意事项有哪些? 228.2.5谈谈与BAPI相关的事务代码。
228.3RFC和BAPI的相同之处和不同之处 228.3.1RFC和BAPI的区别? 229.其他 239.1基础知识 239.1.1CHECK、EXIT、RETURN命令的区别? 239.1.2初始化内表有几种方式? 239.1.3一个程序如何调用另外一个程序 249.1.4在一个程序中如何调用其他事物代码 249.1.5在进行画面跳转时,CALLSCREEN与LEAVETOSCREEN的区别? 249.1.6LOOP循环和系统字段? 249.1.7MESSAGE消息有哪些类型,含义?如何自定义MESSAGE消息类? 249.1.8ABAP中,如何自定义异常类?如何捕捉异常? 249.1.9什么是事物变式?事务变式有什么用? 259.1.10RANGE 259.1.11对于FIELDSYMBOL赋值将使用 259.1.12Perform调用子程序时,using,tables,changing3个参数分别有什么影响? 259.1.13如何在程序间传送数据? 259.2延伸 269.2.1自定义搜索帮助有几种方式?如何实现 269.2.2怎么创建numberrange 269.2.3functionmodule中,如何给出错误消息? 269.2.4如何优化ABAP程序? 269.2.5前导零的处理方式 279.2.6程序事件和系统事件 279.2.7如何建立一个外部数据库的连接 279.2.8怎样从文件服务器上读取文件?和写文件到文件服务器上? 279.2.9SAP包括哪些传输技术 279.2.10如何将内表数据转换成一个XML文件? 289.2.11怎么导出一个WSDL文件? 289.2.12怎么导入一个WSDL文件? 289.2.13创建后台程序的TCODE是什么,如何在程序里面调用后台程序 289.2.14webservice 289.2.15什么叫BTE(BusinessTransactionEvent),BTE的两种类型? 289.2.16现阶段接口开发使用的技术 299.2.17将一个RFM(Remote-EnabledModule)创建一个WEBSERVICE都有什么相关的事务代码? 299.2.18esb使用 2910.常用T-CODE 30
2025/7/16 5:21:44 300KB ABAP 面试
1
Dialog’sBluetoothSmartwirelesskeyboardreferencedesignisbuiltonitsworld-leadingDA14580BluetoothSmartchipandtakesadvantagesofthechip’scapabilitiestopushtheboundariesofwirelesskeyboardbatterylifetimelongevityandBillofMaterials(BoM).Thereferencedesignincludesallnecessaryhardware,softwareanddocumentationtodesignakeyboardguaranteeingfastesttime-to-marketwithminimaldevelopmentinvestmentandeffort.
Thesoftwareisprovidedinsourcecodeandoffersalloftheflexibilitytocustomizethekeyboardandwirelessconnectionparametersaccordingtoyourapplication’sneeds.Features109-keykeyboardwithnumerickeypadandfunctionkeys2LEDsforconnectionstatusandlowbatteryindicationLowestBoMPowersfromasingleAAAalkalineorNiMHbatteryMinimalexternalcomponentcountwithonly16passivecomponentsrequiredforthecompletekeyboardsystemDoublethebatterylifetimeofcurrentavailablesolutionswithlessthan5mApeakcurrentconsumptioninactivemodeandlessthan600nAinstand-byProgrammableconnectionintervalandslavelatencyMulti-keypressdetection6-keysimultaneouspressreportingDe-ghosting(formultiplekeycombinations)Wake-upfromdeepsleepwithanykeypressSupportsconnectiontomultiplehostsProgrammabledeepsleepentrytimeAllkeyparametersareSWcustomizableInteroperabilitywithallmajoroperatingsystems:Win8.1,iOS7andAndroid4.3andbeyondWHQLcertifiable
2025/7/15 11:07:53 1.58MB DA14580 蓝牙键盘例程
1
简介:
在Android开发中,`DialogFragment`是Android SDK提供的一种用于创建弹出式对话框的组件。
它是`Fragment`的一个子类,与传统的`Dialog`相比,`DialogFragment`具有更多的优势,尤其是在处理屏幕旋转和生命周期管理方面。
本篇文章将深入探讨`DialogFragment`的核心概念、优点、使用方法以及常见应用场景。
`DialogFragment`简介:`DialogFragment`继承自`Fragment`,它不仅拥有`Fragment`的所有功能,还能展示一个模态对话框。
它将对话框和碎片的特性结合在一起,使得对话框可以在不同的屏幕配置下保持一致的行为,同时能够更好地适应Android应用的动态布局需求。
`DialogFragment`的优点:1. 生命周期管理:由于`DialogFragment`继承自`Fragment`,它拥有完整的生命周期回调,可以方便地处理如暂停、恢复、销毁等状态变化,使得对话框在不同场景下的行为更加可控。
2. 自动处理配置变更:当设备发生横竖屏切换时,`DialogFragment`会自动处理对话框的关闭和重新显示,而普通的`Dialog`则需要开发者手动处理。
3. 易于集成:`DialogFragment`可以像普通`Fragment`一样添加到Activity的布局中,也可以单独显示为对话框,增加了代码的复用性。
4. 更好的主题定制:`DialogFragment`支持自定义对话框样式,可以方便地调整对话框的外观和行为。
使用`DialogFragment`的步骤:1. 创建`DialogFragment`子类:你需要创建一个新的类,继承自`DialogFragment`,并重写必要的方法,如`onCreateDialog()`,在这个方法中构建你的对话框实例。
2. 实现`onCreateDialog()`:在这个方法中,你可以使用`AlertDialog.Builder`或自定义的`Dialog`来创建对话框,并设置其标题、消息、按钮等元素。
3. 显示`DialogFragment`:你可以通过`FragmentManager`和`FragmentTransaction`将`DialogFragment`添加到当前的Activity中,或者使用静态方法`show()`直接显示对话框。
示例代码:```javapublic class MyDialogFragment extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(requireContext()); builder.setMessage("这是一条对话框消息") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 确定按钮的点击事件 } }) .setNegativeButton("取消", null); return builder.create(); }}```在Activity中显示`DialogFragment`:```javaMyDialogFragment dialogFragment = new MyDialogFragment();dialogFragment.show(getSupportFragmentManager(), "my_dialog");````DialogFragment`的常见应用场景:- 提示用户确认操作,如删除、保存等。
- 展示设置选项或偏好设置。
- 获取用户输入,如登录、注册表单。
- 显示帮助信息或关于应用的详情。
总结来说,`DialogFragment`是Android开发中处理对话框的理想选择,它的灵活性、易用性和强大的功能使其在各种应用场合都能发挥出色的效果。
通过理解其工作原理和实践操作,开发者可以更高效地利用这一组件,提升应用的用户体验。
2025/6/15 19:58:08 1.42MB
1
分享一个界面库。
包括:图像部分:由于效率原因没有使用GDI+,使用GDI来完成处理BMP,PNG,JPG等图片格式,这部分主要代码来自CodejockXtremeToolkit界面库。
MFC绝大部分的标准控件自绘:完美的标题栏重绘(window),button,combo,dialog,edit,list,menu,msgbox,progress,richedit,scroll,slider,splitter,static,tab,tree。
DirectUI:包含一些常用控件button,checkbox,groupbox,label,progress,radiobox,slider等,可以通过XML来解析控件,此DUI没有实现布局,我自己是通过窗口来布局的。
一个TEST工程和一个gamelobby.exe(无源码,用此界面库实现)。
2025/4/22 7:38:10 9.56MB MFC DirectUI 界面库
1
自定义日期滚动选择控件,代码使用方便,而且可以通过修改自定义Dialog中代码控制日期可选范围和添加时间选择功能等。
2025/4/17 12:50:36 2.5MB 滚动日期选择
1
java(C/S)酒店管理系统sqlsever数据库附数据库是不错的学习java的一个课程代码。
还有数据库表备份,可以学习和参考数据库表设计。
由于jdk升级,部分函数可能升级,如dialog.show(),可通过javac看到问题,和解决办法。
2025/1/20 3:09:47 6.39MB java 酒店管理系统 C/S
1
这是一个基于qt5的共享内存QSharememory的测试程序.在win下面编译,自己写的,可以实现不同的应用程序中IPC通信,封装了一个类,非常方便使用。
//具体的测试方法是,运行程序,弹出一个dialog.5个按钮,两列,左边一列是设置共享内存,//右边一列是读取共享内存,左右是对应的,先点击左边的,点击一次之后,内存设置了。
//然后点击右边的按钮,或者其他应用程序也可以读取这个程序的内存。
整个工程开源,打包,编译即可测试,也可以编译成两个独立的应用程序测试。
同时支持跨平台,在linux下面测试过。
侵入式版本linux也可用
1
前几天,公司一同事让我帮忙解决用DrawerLayout时,DrawerLayout的侧边栏有种像Dialog那样的遮罩效果,而且主页面内容点击不了,他要实现的功能是:去掉遮罩效果,并且主页面内容例如Button之类的能够点击,并且触发点击时,侧边栏不能自动关闭,另外还要有常用的可以滑动侧边栏关闭侧边栏,点击侧边栏的item要能够触发相应的事件的效果,于是就有了以下的博客
2024/10/28 15:50:03 26.69MB DrawerLayout
1
共 59 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡