描述:
我写的是批量插入excel的一个功能,将一条条记录放到一个安全数组 m_SafeArraySafeRet里面,然后用函数putvalue2一次性将安全数组放入到excel中。超链接也是以字符串形式放到数组里面的。如=HYPERLINK("images\165102843皖N00045.jpg","车辆图片")
但是不能正常连接,如果双击该超链接之后,就可以正常超链接。以下是摘要的相关代码:
//定义一个待插入的超链接值
CString strval = "images\165102843皖N00045.jpg";
CString str_Path = _T("");
str_Path.Format("=HYPERLINK(\"%s\",\"车辆图片\")",strVal);
//str_Path通过赋值之后为:=HYPERLINK("images\165102843皖N00045.jpg","车辆图片"),
//写入安全数组
//定义一个安全数组SAFEARRAY
COleSafeArray m_SafeArraySafeRet;
long index[2] ={0,0};
index[0] = m_iCountInSheet;//定义待插入的行号
index[1] = i;//定义待插入列号
VARIANT varVal; // 该变量用来为安全数组赋值
VariantInit(&varVal);
varVal.vt = VT_BSTR;
varVal.bstrVal = str_Path.AllocSysString();//将字符串赋值给待插入的变量
m_SafeArraySafeRet.PutElement(index, varVal.bstrVal);//插入安全数组
//将安全数组写入excel
CRange m_cRange;
m_cRange.put_Value2(COleVariant(m_SafeArraySafeRet));//将安全数组一次性批量写入excel
现在问题是:excel里面确实有超链接这一列,且内部字符也是我输入的字符串str_Path,但是不能正常超链接,如下:
=HYPERLINK("images\165102843皖N00045.jpg","车辆图片"),
但是有一点如果双击该表格,就可以正常超链接。