在C++ Builder中用Ole控制Excel表
作者 佚名技术
来源 程序设计
浏览
发布时间 2012-06-29
Date.SubString(6,strPtrDate.Length()-5); AnsiString strMonth = strPtrDate.SubString(1,strPtrDate.Pos("-")-1); AnsiString strDay = strPtrDate.SubString(strPtrDate.Pos("-")+1, strPtrDate.Length()-strPtrDate.Pos("-")); strPtrDate = strYear+"年"+strMonth+"月"+strDay+"日"; AnsiString strData = "报表标题";//报表标题 file://将报表标题置于第一行第一列。在此之前,应将报表文件的标题格式设定好。 Sheet.OlePropertyGet("Cells",1,1).OlePropertySet("Value", strData.c_str()); file://将制表日期置于表格第二行的右侧。 Sheet.OlePropertyGet("Cells",2,5).OlePropertySet("Value", strPtrDate.c_str()); iRows = 3;//在第三行放置表格的列名 Sheet.OlePropertyGet("Cells",iRows,1).OlePropertySet("Value","列名1"); Sheet.OlePropertyGet("Cells",iRows,2).OlePropertySet("Value","列名2"); Sheet.OlePropertyGet("Cells",iRows,3).OlePropertySet("Value","列名3"); Sheet.OlePropertyGet("Cells",iRows,4).OlePropertySet("Value","列名4"); Sheet.OlePropertyGet("Cells",iRows,5).OlePropertySet("Value","列名5"); Sheet.OlePropertyGet("Cells",iRows,6).OlePropertySet("Value","列名6"); file://画表格边框,在A3:F3之间取范围 strRange = "A"+IntToStr(iRows)+":F"+IntToStr(iRows); ERange = Sheet.OlePropertyGet("Range",strRange.c_str()); EBorders = ERange.OlePropertyGet("Borders"); EBorders.OlePropertySet("linestyle",xlContinuous); EBorders.OlePropertySet("weight",xlThin); EBorders.OlePropertySet("colorindex",xlAutomatic); iRows++; file://从数据库中取数据(略),假设数据集放入Query1中。 Query1->Open();//打开数据集 file://循环取数 while(!Query1->Eof) { file://循环取字段的数据放到Excel表对应的行列中 for(iCols=1;iCols<7;iCols++) { strRowTemp = Query1->Fields->Fields[iCols-1]->AsString; Sheet.OlePropertyGet("Cells",iRows,iCols).OlePropertySet("Value", strRowTemp.c_str()); } file://画该行的表格边框 strRange = "A"+IntToStr(iRows)+":F"+IntToStr(iRows); ERange = Sheet.OlePropertyGet("Range",strRange.c_str()); EBorders = ERange.OlePropertyGet("Borders"); EBorders.OlePropertySet("linestyle",xlContinuous); EBorders.OlePropertySet("weight",xlThin); EBorders.OlePropertySet("colorindex",xlAutomatic); iRows++; Query1->Next(); }//while结束 Wb.OleProcedure("Save");//保存表格 Wb.OleProcedure("Close");关闭表格 Ex.OleFunction("Quit");退出Excel file://定义目标文件名 AnsiString DestinationFile = GetCurrentDir()+"\\report\\table.xls"; file://将刚刚修改的Excel表格文件table.xls拷贝到report目录下 if(!CopyFile(ExcelFileName.c_str(),DestinationFile.c_str(),false)) { Application->MessageBox("复制文件操作失败,Excel文件可能正在使用中! |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: C++中的模板(template)下一篇: 用OLE操作Excel(Wangda补充)
关于在C++ Builder中用Ole控制Excel表的所有评论