我在s=var.bstrVal;///////此处设了跟踪
前面加了一句: s="";
然后跟踪这个变量的内容,还是路径名,这是怎么回事?怎么改变不了s的内容
前面加了一句: s="";
然后跟踪这个变量的内容,还是路径名,这是怎么回事?怎么改变不了s的内容
解决方案 »
- 一个包含Com组件的dll,是运行在容器程序的地址空间里面,还是Com管理器的地址空间里面?
- C++编程使用WPS打开硬盘上的文件,无法显示?
- .Net 2003 以及2005无法使用类向导添加普通的c++文件
- 请问Vista下exe程序属性中“兼容性”下设置“以管理员权限运行此程序”对应的WinApi是什么?
- 关于写内存的问题
- 硬盘数据全丢,散分
- 如何把剪贴板中的数据保存起来,等需要时还可以恢复?
- 各位好心的大大们,谁能帮帮我啊!关于禁止弹窗口问题!先谢谢大家了!!!!!!!
- 高分求教高手,如何自己编写一个类似EMAIL服务器端程序
- vc1.52 哪里可下载?
- CTreeCtrl设为子树的问题,求助。
- JS中捕捉OCX控件是不是一直在捕捉?先谢谢了!
这句不好
有没有函数得到你的excel中有多少条记录,然后用for循环
应该用objRange1.GetValue()
而不是var=objRange1.GetFormulaR1C1();
用了下面几个变量获取列数行数:
int hangshu=objRange1.GetCount();
int hangshu1=objRange1.GetColumn();
LPDISPATCH hangshu2=objRange1.GetColumns();
int lieshu1=objRange1.GetRow();
LPDISPATCH lieshu2=objRange1.GetRows();
然后结果显示:
-858993460
-858993460
-858993460
0xcccccccc
1.你刚做好的时候和现在的程序有区别吗?还是你的程序开始运行没问题,运行了一段时间有问题?
2.如果是你的程序开始运行没问题,运行了一段时间有问题,那么你有没有检查一下excel表数据,是否有问题?
刚做好的和现在做好的区别在于:
刚做好的是点击一个按钮,弹出目录浏览框,选择一个excel文件,开始导入数据;
现在做的是点击一个按钮,弹出目录浏览框,选择一个文件夹,然后遍历里面的文件,导入文件夹里我想导入数据的多个文件
void CCheckFileDemoDlg::OnSearch() //遍历当前目录下的文件
{
// TODO: Add your control notification handler code here
CString oldDir;//保存原始的当前路径
btname=initname;
jfname=initname;
qzdname=initname;
BOOL bt,jf,qzd;
bt=0;
jf=0;
qzd=0;
UpdateData(true);//获取输入数据
GetCurrentDirectory(50,(LPTSTR)(LPCTSTR)oldDir);//获取当前路径
if(!SetCurrentDirectory((LPCTSTR)m_folder)||m_folder.IsEmpty())//如果有输入
{
m_folder=(LPCTSTR)oldDir;
UpdateData(false);
}
while(m_fileList.GetCount()!=0)//清空列表框
{
int index=m_fileList.GetTopIndex();
m_fileList.DeleteString(index);
}
FindFile(CString(m_folder));//开始查找
m_filenum=m_fileList.GetCount();//获取文件数目
UpdateData(false);//编辑框显示
SetCurrentDirectory((LPCTSTR)oldDir);//恢复当前目录
daorubiaotou1 = "开始导入邮寄表头数据...";
daorujifei1 = "开始导入邮寄计费数据...";
daoruqizhidu1 = "开始导入邮寄起止度数据...";
daochuhuizong1 = "数据转换中...";
daorubiaotou2 = "邮寄表头数据导入完毕!";
daorujifei2 = "邮寄计费数据导入完毕!";
daoruqizhidu2 = "邮寄起止度数据导入完毕!";
daochuhuizong2 = "数据转换已完成,保存在数据源文件所在目录!";
if (strstr(btname,initname)==NULL)
{
DaoRuBiaoTou();
bt=1;
}
else{
CString temp="没找到邮寄表头文件";
AfxMessageBox(temp);
}
if (strstr(jfname,initname)==NULL)
{
DaoRuJiFei();
jf=1;
}
else{
CString temp="没找到邮寄计费文件";
AfxMessageBox(temp);
}
if (strstr(qzdname,initname)==NULL)
{
DaoRuQiZhiDu();
qzd=1;
}
else{
CString temp="没找到邮寄起止度文件";
AfxMessageBox(temp);
}
if (bt&&jf&&qzd)
{
DaoChuHuiZong();
}
else{
CString temp="原始文件不齐,无法执行数据转换";
AfxMessageBox(temp);
}
}void CCheckFileDemoDlg::OnFolder()
{
// TODO: Add your control notification handler code here
CString strFilter,str;
BROWSEINFO bi;
char name[MAX_PATH];
ZeroMemory(&bi,sizeof(BROWSEINFO));
bi.hwndOwner = GetSafeHwnd();
bi.pszDisplayName = name;
bi.lpszTitle = "Select folder";
//bi.ulFlags = BIF_USENEWUI;
bi.ulFlags = BIF_RETURNFSANCESTORS;
LPITEMIDLIST idl = SHBrowseForFolder(&bi);
if(idl == NULL)
return;
SHGetPathFromIDList(idl, str.GetBuffer(MAX_PATH));
str.ReleaseBuffer();
m_folder = str;//为对话框中与一编辑框对应的CString型变量,保存并显示选中的路径。
if(str.GetAt(str.GetLength()-1)!='\\')
m_folder+="\\";
UpdateData(false);
}void CCheckFileDemoDlg::FindFile(CString Curdir)
{
HANDLE hfile;//查找文件句柄
WIN32_FIND_DATA wfdata;//文件信息结构
BOOL IsOver=false;//查找过程结束标志
CString strname;//文件名
CString strfull;//全路径
CString tpbiaotou,tpjifei,tpqizhidu;
tpbiaotou="表头";
tpjifei="计费";
tpqizhidu="起止度";
hfile=FindFirstFile((LPCTSTR)("*.*"),&wfdata);//查找第一个文件
if(hfile==INVALID_HANDLE_VALUE)
IsOver=true;//查找过程结束
while(!IsOver)
{
strname.Format("%s",wfdata.cFileName);//获取找到的文件名
strfull=Curdir+"\\"+strname;//全路径
if((wfdata.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)&&(wfdata.cFileName[0]!=_TEXT('.')))//
{
SetCurrentDirectory(wfdata.cFileName);
FindFile(strfull);//递归调用
SetCurrentDirectory("..");//返回当前目录
}
else if(wfdata.cFileName[0]!=_TEXT('.'))
m_fileList.AddString(strfull);
if (!strstr(strfull,tpbiaotou)==NULL)
{
btname=strfull;
//AfxMessageBox(btname);
}
if (!strstr(strfull,tpjifei)==NULL)
{
jfname=strfull;
//AfxMessageBox(jfname);
}
if (!strstr(strfull,tpqizhidu)==NULL)
{
qzdname=strfull;
//AfxMessageBox(qzdname);
}
IsOver=!FindNextFile(hfile,&wfdata);//查找下一个文件
}
FindClose(hfile);//关闭句柄
}
objRange1=objApp.GetRange(_variant_t(s1),_variant_t(s1));
var=objRange1.GetFormulaR1C1();
s=var.bstrVal;