void CMapgistwoView::WriteOneRowToExecl(long i, long n, Range m_range,_Worksheet m_sheet, CString *m_str)
{//从EXECL文件中读取指定行的数据
// i—行号
// n—数据列数
// m_str—存放读入的数据
m_range=m_sheet.GetRange(COleVariant(IndexToString(i, 1)),COleVariant(IndexToString(i, int(n))));
VARIANT varChunk;
VariantInit(&varChunk);
CString str;
SAFEARRAY *psa = NULL;
SAFEARRAYBOUND rgsabound;//一维维度
rgsabound.lLbound = 1;//下标起始位置
rgsabound.cElements = n;//数量
psa = SafeArrayCreate(VT_BSTR, 1 , &rgsabound);//分配空间,1表示一维数组
for(i=1;i<=n;i++)
{
str=m_str[i-1];
SafeArrayPutElement(psa, &i, str.AllocSysString());//给psa赋值
}
varChunk.vt = VT_ARRAY|VT_BSTR;//字符串型数组,
varChunk.parray = psa;//将psa的值赋值给varChunk
m_range.SetValue2(varChunk);//将varChunk写入EXECL文件的指定单元格中
VariantClear(&varChunk);//释放空间
SafeArrayDestroy(psa);//释放空间
return;
}