CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind('\\')+1;
sPath=sPath.Left(nPos);
CString sOpenExe;
sOpenExe = sPath;
sOpenExe += "文件名.exe";//或者打开.doc、.chm等文档文件作为帮助手册等
//使用
CString strs="open";
ShellExecuteW(NULL,(const WCHAR *)(strs.AllocSysString()),(const WCHAR *)(sOpenExe.AllocSysString()),NULL,NULL,SW_SHOWNORMAL);
//或者直接使用
ShellExecuteW(NULL,_T("open"),sOpenExe,NULL,NULL,SW_SHOWNORMAL);
vc读取excel文件
void CPreviewDlg::InitListRowText(void)
{
_ConnectionPtr m_pConnect; //ADO对象,下同
_RecordsetPtr m_pRecordset;
m_pConnect.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
CString sql;
sql = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
sql+=GloubleStrPath;//EXCEL文件绝对路径+它自己的文件名。
sql += _T(";Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"");
m_pConnect->Open((_bstr_t)sql,"","",adModeUnknown);
m_pRecordset->Open("select * from [Sheet1$]", m_pConnect.GetInterfacePtr(), adOpenDynamic, adLockOptimistic,adCmdText);//[iomstats]就是excel左下的[sheet]修改名。
CString str;
int n=0;
while(!m_pRecordset->adoEOF)
{
str=(LPCSTR)_bstr_t(m_pRecordset->GetCollect(_variant_t(0L)));
m_ctrListTableColumn.InsertItem(n,str );
str=(LPCSTR)_bstr_t(m_pRecordset->GetCollect(_variant_t(1L)));
m_ctrListTableColumn.SetItemText(n,1,str);
str=(LPCSTR)_bstr_t(m_pRecordset->GetCollect(_variant_t(2L)));
m_ctrListTableColumn.SetItemText(n,2,str);
m_pRecordset->MoveNext();
if (n>=10)
{
break;
}
n++;
}
m_pRecordset->Close();
m_pConnect->Close();
}