资源描述:
《LABWINDOWS中如何输出EXCEL报表.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、LABWINDOWS中如何输出EXCEL报表LABWINDOWS作为测控领域的优秀开发平台,对于具有C语言基础的人员来说使用特别方便。有时我们可能需要CVI输出数据文件并且打印报表,我现在简单介绍一下CVI输出EXCEL报表的一种方法,本人不是专业程序员,主要用CVI做一些自动控制方面的PC机端的简单编程,所以可能某些地方不专业!1、按要求用EXCEL做好报表模板存储成普通EXCEL文件格式,2000或2003都可以。2、打开CVI,按照正常方法设计用户操作界面,当然界面上至少要有“打开EXCEL程序”或“传递数据到EXCEL“等按钮,生成C源程序框架。3、工程中添加exce
2、lreport.fp位于...CVI90toolslibactivexexcel目录下,4、“打开EXCEL程序”按钮的回调函数的编写——重要!intCVICALLBACKLaunchExcelCB(intpanel,intcontrol,intevent,void*callbackData,inteventData1,inteventData2){charExcelFileName[MAX_PATHNAME_LEN]={0};switch(event){caseEVENT_COMMIT:SetWaitCursor(1);LaunchError=ExcelRpt_App
3、licationNew(1,&applicationHandle);SetWaitCursor(0);if(LaunchError<0){MessagePopup("自动启动Excel错误:","通过自动接口试图启动Excel发生错误。");break;//退出程序。}GetProjectDir(ExcelFileName);//得到Project当前目录名,(将第一步中的模板*****.xls文件copy到工程文件目录下)strcat(ExcelFileName,"\*****.xls");//字符串连接ExcelRpt_WorkbookOpen(applicationH
4、andle,ExcelFileName,&workbookHandle);//打开该路经下的EXCEL文件ExcelRpt_GetWorksheetFromIndex(workbookHandle,1,&worksheetHandle);ExcelRpt_ActivateWorksheet(worksheetHandle);//激活该句柄的电子表格sheetbreak;}return0;}当然程序开头处要声明,目标句柄。staticCAObjHandleapplicationHandle;staticCAObjHandleworkbookHandle;staticCAObjH
5、andleworksheetHandle;5、“传递数据到EXCEL“按钮的回调函数的编写——重要!charExcelCellNum[8]={' '};charTableValue[10]="adasfafdf";//将TableValue[]中的数据传入Excel。按照模板格式设计下面语句。for(inti=0;i<10;i++){sprintf(ExcelCellNum,"%s%d","B",i+1);//处理Excel单元格字串ExcelRpt_SetCellValue(worksheetHandle,ExcelCellNum,ExRConst_dataString,
6、TableValue);//数据写入EXCEL。ExcelRpt_SetCellValue(worksheetHandle,"A9",ExRConst_dataString,"HGP7561");//写到第1列第9行单元处}//设置EXCEL单元格边框。ExcelRpt_RangeBorder(worksheetHandle,"B1:C6",ExRConst_Continuous,255,ExRConst_Thin,ExRConst_InsideHorizontal
7、ExRConst_InsideVertical
8、ExRConst_EdgeBottom
9、ExRConst_Ed
10、geLeft
11、ExRConst_EdgeRight
12、ExRConst_EdgeTop);6、关闭按钮回调函数。intCVICALLBACKCloseCB(intpanel,intcontrol,intevent,void*callbackData,inteventData1,inteventData2){switch(event){caseEVENT_COMMIT:if(worksheetHandle)CA_DiscardObjHandle(worksheetHandle);//if(chartHand