用C++怎么从excel表格中读取数据并进行简单的计算

如下图中的A、B列下面的数字,3和5,要在C列中把“A+B=”的结果显示出来,也就是C列下的数字为“8”,再循环的计算下一行A列的2+B列的7=C列的9。要有具体的程序

不知这样的效果如何?文件在附件,代码片段在下方:

LPXLOPER Add(LPXLOPER x1,LPXLOPER x2)
{
 if (x1->xltype==xltypeErr)
 {
  return x1;
 }
 if (x2->xltype==xltypeErr)
 {
  return x2;
 }
 static XLOPER xlRet={0};
 double d1=0,d2=0;
 if ((x1->xltype&xltypeNum)==xltypeNum)
 {
  d1=x1->val.num;
 }else if ((x1->xltype&xltypeInt)==xltypeInt)
 {
  d1=x1->val.w;
 }else if ((x1->xltype&xltypeSRef)==xltypeSRef)
 {
  if (GetNumFromCell(x1,d1)==false)
  {
   xlRet.val.err=xlerrValue;
   xlRet.xltype=xltypeErr;
   return (LPXLOPER)&xlRet;
  }
 }else
 {
  xlRet.val.err=xlerrValue;
  xlRet.xltype=xltypeErr;
  return (LPXLOPER)&xlRet;
 }
 if ((x2->xltype&xltypeNum)==xltypeNum)
 {
  d2=x2->val.num;
 }else if ((x2->xltype&xltypeInt)==xltypeInt)
 {
  d2=x2->val.w;
 }else if ((x2->xltype&xltypeSRef)==xltypeSRef)
 {
  if (GetNumFromCell(x2,d2)==false)
  {
   xlRet.val.err=xlerrValue;
   xlRet.xltype=xltypeErr;
   return (LPXLOPER)&xlRet;
  }
 }else
 {
  xlRet.val.err=xlerrValue;
  xlRet.xltype=xltypeErr;
  return (LPXLOPER)&xlRet;
 }
 xlRet.xltype=xltypeNum;
 xlRet.val.num=d1+d2;
 return (LPXLOPER)&xlRet;
}

bool GetNumFromCell(LPXLOPER lpXloper,double & dValue)
{
 XLOPER x_Tmp={0};
 if ((lpXloper->xltype & xltypeSRef)==xltypeSRef)
 {
  if (xlretUncalced == Excel(xlCoerce, &x_Tmp, 2, lpXloper, TempInt(xltypeNum)))
  {
   return false;
  }
  if (x_Tmp.xltype==xltypeErr)
  {
   return false;
  }
  dValue=x_Tmp.val.num;
 }else
 {
  return false;
 }
 return true;
}


追问

你好,请问出现这种情况该怎么解决?这个可以用visualc++6.0读取excel表格中的数据并进行循环计算吗?

追答

我以为你已经步入了Excel插件开发的大门了,你这是作业还是自己在研究学习呀?

追问

作业,不过自己正在研究学习。因为对同一回答者的提问超过3条后会消耗财富值,所以大神,能不能给个操作流程,我是纯小白;运行可以后,我会采纳大神的答案的,谢谢。

追答

既然这样,以我的百度用户名为邮箱名,163的,直接邮件来说吧。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-20
t对tuple进行处理之后,通常要将数据缓存到redis,memcached等内存数据库中,对于数据量小的,可以缓存到内存中,但是对于大量持久化的数据,更多时候需要存储到分布式存储系统中,这里我选择HBase用于存储结果。 参照官方文档,storm提供storm-h...本回答被网友采纳