lpDisp = books.Open(strFilePath, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional);
book.AttachDispatch(lpDisp);
sheets.AttachDispatch(book.get_Worksheets());
//sheet = sheets.get_Item(COleVariant((short)1));
lpDisp = book.get_ActiveSheet();
sheet.AttachDispatch(lpDisp);
range.AttachDispatch(sheet.get_Cells(),TRUE);
if (FUTUREa == 0 && var1 != L"") {
for (int i = 0; i < 1000;i++) {
range.AttachDispatch(range.get_Item(COleVariant((long)i+1), COleVariant((long)varr1)).pdispVal); //第一变量是行,第二个变量是列
long fu;
fu = (long)i + 1;
vResult = range.get_Value2();
if (vResult.vt == VT_BSTR) //字符串
{
str1[i] = vResult.bstrVal;
}
else if (vResult.vt == VT_R8 || vResult.vt == VT_R4) //8||4字节的数字
{
str1[i].Format(_T("%f"), vResult.dblVal);
}
else if (vResult.vt == VT_I4) {
str1[i].Format(_T("%d"), vResult.dblVal);
}
if (str1[i] == L"" || str1[i] == "") {
FUTUREa = 1;
j = i-1;
break;
}
SetDlgItemText(IDC_EDIT7, str1[i]);
}
}
if (FUTUREa == 1 && var2 != L"") {
for (int i = 0; i < 1000; i++) {
range.AttachDispatch(range.get_Item(COleVariant((long)i+1), COleVariant((long)varr2)).pdispVal); //第一变量是行,第二个变量是列
vResult = range.get_Value2();
if (vResult.vt == VT_BSTR) //字符串
{
str2[i] = vResult.bstrVal;
}
else if (vResult.vt == VT_R8) //8字节的数字
{
str2[i].Format(_T("%f"), vResult.dblVal);
}
if (str2[i] == L"" || str2[i] == "") {
FUTUREa += 1;
break;
}
}
}
这两个循环是分别读取第一列和第二列的内容,但是我程序运行完了之后,str1的数组中只有[第一轮,一,三,六]被读取到了,第二列全部都没有读取到
请问大神们能否告诉我这是为什么