解决方案 »
- Sqlite插入数据 内存不断增长如何解决????
- 求段代码,查找算法
- _execl的问题.
- CArray <int ,int[][]> CArray2;//为什么不行?
- 请外包到华为的同行进来谈谈,工作环境,待遇,上升空间?对今后的影响?分不是问题
- 100分:如何测整个某个文件夹内所有文件的大小总和
- 请wuxuan(真心英雄)和kimryo(一切皆有可能)进来拿分!(版主不要误删)
- 用VC制作好OCX后,在另一程序中调用时(编译状态),画出的是白框?
- 我现在又有一个新问题,怎么让对话框自动随着网页的大小而改变呢?
- 动态连接库的奇怪问题再探
- 关于Event事件对象的一段困惑
- PropertyGridCtrl控件能否动态设定每个网格的高度?
//把识别结果和真值进行比对,结果写到EXCEL里面
void WriteToExcel(CString* data , int n)
{
/************* WriteToExcel *********************************
Function : 把识别结果和真值进行比对,结果写到EXCEL里面
Algorithms : 比对
Parameter : CString * data --> 识别结果数组
Parameter : int n --> 识别结果的个数
Return :
Date : 2012/09/01 22:37 **************************/ Range m_ExlRge;
_Worksheet m_ExlSheet;
Worksheets m_ExlSheets;
_Workbook m_ExlBook;
Workbooks m_ExlBooks;
_Application m_ExlApp; CString realSN[1200]; // 真实编码 if(!AfxOleInit())///初始化COM库
{
AfxMessageBox(_T("初始化COM失败"));
}
if(!m_ExlApp.CreateDispatch(_T("Excel.Application"),NULL))
{
AfxMessageBox(_T("创建Excel服务失败!"));
return;
} m_ExlApp.SetVisible(FALSE);
CString theAppPath;
//TOD,O:==标准字符设置
CString TempPath;
if (ceshi)
{
TempPath = _T("d:\\bz483z.xls");//EXCEL模板的路径
}
else
{
TempPath = _T("d:\\bz300.xls");//EXCEL模板的路径
} m_ExlBooks.AttachDispatch(m_ExlApp.GetWorkbooks(),TRUE);
m_ExlBook.AttachDispatch(m_ExlBooks.Add((_variant_t)TempPath),TRUE);//加载EXCEL模板
m_ExlSheets.AttachDispatch(m_ExlBook.GetSheets(),TRUE);//加载Sheet页面 //修改Sheet页面的名称,第一页从1开始,不是0哦!后面涉及到编号的地方都是如此,要注意阿
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)1)),TRUE);
//开始向各个单元格填入数据
m_ExlRge.AttachDispatch(m_ExlSheet.GetCells(),TRUE);//加载所有单元格 CString str;
VARIANT vMsg;
char cMsg[20]; for (int i = 0; i < 483 ; i++)
{
vMsg=m_ExlRge.GetItem(_variant_t((long)(i+1)) ,_variant_t((long)1));
_bstr_t bMsg=(_bstr_t)vMsg;
strcpy(cMsg , bMsg);
str=cMsg;
realSN[i]=str;
} CString tem;
int blankN=0;
for(int i=0;i<n;i++)
{
tem=cmpStr(realSN[i] ,data[i]); m_ExlRge.SetItem(_variant_t((long)(i+1)),_variant_t((long)1),_variant_t((LPCTSTR)realSN[i]));
m_ExlRge.SetItem(_variant_t((long)(i+1)),_variant_t((long)2),_variant_t((LPCTSTR)data[i]));
m_ExlRge.SetItem(_variant_t((long)(i+1)),_variant_t((long)3),_variant_t((LPCTSTR)tem)); if (tem != _T(""))
{
blankN++;
}
} tem.Format(_T("张数为 : %d") ,blankN);
m_ExlRge.SetItem(_variant_t((long)(n+2)),_variant_t((long)3),_variant_t((LPCTSTR)tem)); SYSTEMTIME st;
GetLocalTime(&st); CString path;
path.Format(_T("D:\\比对结果\\bidui%02d%02d%02d%02d.xls"),st.wMonth,st.wDay,st.wHour,st.wMinute); //将编辑完成的内容保存为新文件,这里的文件名可以根据需要动态产生。
m_ExlSheet.SaveAs( path,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing); //释放对象
m_ExlRge.ReleaseDispatch();
m_ExlSheet.ReleaseDispatch();
m_ExlSheets.ReleaseDispatch();
m_ExlBook.ReleaseDispatch();
m_ExlBooks.ReleaseDispatch();
//m_ExlApp一定要退出程序,否则程序结束后还会有一个Excel进程驻留在内存中,而且程序重复运行的时候会出错
m_ExlApp.Quit();
m_ExlApp.ReleaseDispatch();
}