
MFC调用excel表格后 无法关闭excel进程 已调用app.Quit(); 求指点全部分了
如题这是我的代码:voidinformation::Type(){CApplicationapp;CWorkbooksbooks;CWorkbookbook;CWorks...
如题 这是我的代码:
void information::Type()
{
CApplication app;
CWorkbooks books;
CWorkbook book;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
CRange iCell;
LPDISPATCH lpDisp;
COleVariant vResult;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if(!app.CreateDispatch(L"Excel.Application"))
{
AfxMessageBox(L"无法启动Excel服务器!");
exit (1);
}
books.AttachDispatch(app.get_Workbooks());
lpDisp = books.Open(_T("d:\\dy\\mfc\\表格\\漏洞信息表(改).xlsx"),covOptional, covOptional, covOptional, covOptional, covOptional,covOptional, covOptional, covOptional, covOptional, covOptional,covOptional, covOptional, covOptional,covOptional);
//得到Workbook
book.AttachDispatch(lpDisp);
//得到Worksheets
sheets.AttachDispatch(book.get_Worksheets());
sheet=sheets.get_Item(COleVariant((short)1));
range.AttachDispatch(sheet.get_Cells());//获得文件。。
string str("");
char str1[16]={};
for(long i=2,j=0;i<12,j<10;i++,j++)
{
/*sprintf(str1,"%c%d",'A',i);
str.append(str1);*/
sprintf(str1,"%c%d",'C',i);
range = sheet.get_Range(_variant_t(str1),_variant_t(str1));
CStarInfoManage::ExcelToString(range,i,1,lx[j],covOptional);
if(lx[j]=="")
{
break;
}
}
books.Close();
app.Quit(); // 退出
//释放对象
range.ReleaseDispatch();
sheet.ReleaseDispatch();
sheets.ReleaseDispatch();
book.ReleaseDispatch();
books.ReleaseDispatch();
app.ReleaseDispatch();
} 展开
void information::Type()
{
CApplication app;
CWorkbooks books;
CWorkbook book;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
CRange iCell;
LPDISPATCH lpDisp;
COleVariant vResult;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if(!app.CreateDispatch(L"Excel.Application"))
{
AfxMessageBox(L"无法启动Excel服务器!");
exit (1);
}
books.AttachDispatch(app.get_Workbooks());
lpDisp = books.Open(_T("d:\\dy\\mfc\\表格\\漏洞信息表(改).xlsx"),covOptional, covOptional, covOptional, covOptional, covOptional,covOptional, covOptional, covOptional, covOptional, covOptional,covOptional, covOptional, covOptional,covOptional);
//得到Workbook
book.AttachDispatch(lpDisp);
//得到Worksheets
sheets.AttachDispatch(book.get_Worksheets());
sheet=sheets.get_Item(COleVariant((short)1));
range.AttachDispatch(sheet.get_Cells());//获得文件。。
string str("");
char str1[16]={};
for(long i=2,j=0;i<12,j<10;i++,j++)
{
/*sprintf(str1,"%c%d",'A',i);
str.append(str1);*/
sprintf(str1,"%c%d",'C',i);
range = sheet.get_Range(_variant_t(str1),_variant_t(str1));
CStarInfoManage::ExcelToString(range,i,1,lx[j],covOptional);
if(lx[j]=="")
{
break;
}
}
books.Close();
app.Quit(); // 退出
//释放对象
range.ReleaseDispatch();
sheet.ReleaseDispatch();
sheets.ReleaseDispatch();
book.ReleaseDispatch();
books.ReleaseDispatch();
app.ReleaseDispatch();
} 展开
4个回答
展开全部
用kill杀掉进程试试。
追问
mfc 怎么用kill啊 我想用kill呢正在找方法 大神 指点下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
轻轻的飘过 飘过。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
kill excel
追问
麻烦问下 用kill怎么实现
追答
看下这里吧,具体就不写了
VC 通过进程名 杀掉进程 (KillProcessFromName注释版) - 流云 - 博客频道 - CSDN.NET
http://blog.csdn.net/owldestiny/article/details/8010205
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询