之前那个帖子不知道如何让大神们看到我的回复
小弟只有冒死再发一下新的问题了
按照大神的指点,小弟把“d://test.xls”,=>"d:\\test.xls"
但是新的问题来了
d://test.xls整个显示红色
我把鼠标放在上面显示 Error:“const char*”类型的实参与“LPCTSPR”类型的形参不兼容
我应该怎么办?请高手指点具体办法,我是新手
我这里有教程的源文件
有兴趣的大神可以Q我2451278237 帮我小弟度过这个难关下面是代码:
void CABCDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnOK();
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服务器!");
return;
}
books.AttachDispatch(app.get_Workbooks());
lpDisp = books.Open(“d://test.xls”,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
//如果有单元格正处于编辑状态中,此操作不能返回,会一直等待
lpDisp=book.get_ActiveSheet();
sheet.AttachDispatch(lpDisp);
//读取第一个单元格的值
range.AttachDispatch(sheet.get_Cells());
range.AttachDispatch(range.get_Item (COleVariant((long)2),COleVariant((long)1)).pdispVal );
/*COleVariant*/ vResult =range.get_Value2();
CString str;
if(vResult.vt == VT_BSTR) //字符串
{
str=vResult.bstrVal;
}
else if (vResult.vt==VT_R8) //8字节的数字
{
str.Format(L"%f",vResult.dblVal);
}
/*else if(vResult.vt==VT_DATE) //时间格式
{
SYSTEMTIME st;
VariantTimeToSystemTime(&vResult.date, &st);
}
else if(vResult.vt==VT_EMPTY) //单元格空的
{
str="";
}*/
books.Close();
app.Quit(); // 退出
//释放对象
range.ReleaseDispatch();
sheet.ReleaseDispatch();
sheets.ReleaseDispatch();
book.ReleaseDispatch();
books.ReleaseDispatch();
app.ReleaseDispatch();
OnOK();
MessageBox(str);
}
小弟只有冒死再发一下新的问题了
按照大神的指点,小弟把“d://test.xls”,=>"d:\\test.xls"
但是新的问题来了
d://test.xls整个显示红色
我把鼠标放在上面显示 Error:“const char*”类型的实参与“LPCTSPR”类型的形参不兼容
我应该怎么办?请高手指点具体办法,我是新手
我这里有教程的源文件
有兴趣的大神可以Q我2451278237 帮我小弟度过这个难关下面是代码:
void CABCDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnOK();
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服务器!");
return;
}
books.AttachDispatch(app.get_Workbooks());
lpDisp = books.Open(“d://test.xls”,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
//如果有单元格正处于编辑状态中,此操作不能返回,会一直等待
lpDisp=book.get_ActiveSheet();
sheet.AttachDispatch(lpDisp);
//读取第一个单元格的值
range.AttachDispatch(sheet.get_Cells());
range.AttachDispatch(range.get_Item (COleVariant((long)2),COleVariant((long)1)).pdispVal );
/*COleVariant*/ vResult =range.get_Value2();
CString str;
if(vResult.vt == VT_BSTR) //字符串
{
str=vResult.bstrVal;
}
else if (vResult.vt==VT_R8) //8字节的数字
{
str.Format(L"%f",vResult.dblVal);
}
/*else if(vResult.vt==VT_DATE) //时间格式
{
SYSTEMTIME st;
VariantTimeToSystemTime(&vResult.date, &st);
}
else if(vResult.vt==VT_EMPTY) //单元格空的
{
str="";
}*/
books.Close();
app.Quit(); // 退出
//释放对象
range.ReleaseDispatch();
sheet.ReleaseDispatch();
sheets.ReleaseDispatch();
book.ReleaseDispatch();
books.ReleaseDispatch();
app.ReleaseDispatch();
OnOK();
MessageBox(str);
}
解决方案 »
- MFC DLL中使用窗体,线程Setdlgitemtxt问题,人人有分拿
- 访问网络,解析反馈的流文件,难道设计思路错了吗?
- 已知一个点的坐标(x,y),然后用SetWorldTransform变换坐标系后,求屏幕上同一个点的位置的新坐标值。各为帮帮忙啊
- 如果可以得到一个坐标值,请问:如何以此坐标作为对话框左上角的坐标来显示一个cdialog 类型的对话框
- 如何监控对一个目录的访问,我想在进入目录前加上密码验证。
- 当鼠标放到OICQ好友上的时候,出现了一个黄色提示框,怎么获得它里面的内容阿
- 怎么回事??error LNK2019: 无法解析的外部符号__imp___invalid_parameter_noinfo
- ¥¥¥==急聘VC程序员==¥¥¥
- dll,lib,.h有什么区别呢
- ygd进来
- 通过节点信息重构复杂结构的三维光滑曲面
- vc6.0代码提示问题。。急急急。。。
windows下常用的是d:\test.xls。然后在C语言里,\要用脱字符“\\”。
你还没有修改啊,你看看你的文件路径 books.Open(“d://test.xls”,