用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...本回答被网友采纳

用C++怎么从excel表格中读取数据并进行简单的计算
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-...

使用c++怎么能够调取excel中的数据并且进行运算
1 . 使用VC++新建立一个基于MFC的EXE工程 2 . 点击菜单"查看"-->"建立类向导",此时会弹全"MFC ClassWizard"对话框 3 . 点击"Add Class"-->"From a type libray",指定Excel的type libray,在Excel的安装目录下可以找到,如:"D:\\\\Microsoft Office\\\\Office\\\\EXCEL9.OLB"4 . 在弹出的...

vc++怎样从excel文件中读写数据
首先利用Visual C++ 6.0,建立一个MFC基于对话框的工程项目,共享DLL,Win32平台。工程名称ExcelTest。在主对话框中加入一个按钮,ID IDC_EXCELTEST Caption Test Excel 双击该按钮,增加成员函数void CExcelTestDlg::OnExceltest()。在BOOL CExcelTestApp::InitInstance()中,dlg.DoModal();之前增加...

怎么用c++从excel中读入数据
rename( "ReplaceText", "ExcelReplaceText" ) \\ exclude( "IFont", "IPicture" ) no_dual_interfaces import指令会从指定的可执行文件,动态链接库等COM组件中导出类型库(type lib),在Debug和Release临时目录中生成对应的类型库头文件(type lib header file),以供C++程序使用。如以上三条指令在...

怎样用vc++6.0的程序读取Excel表格里面的数据?
C++使用excel相当于使用外部对象,需要先创建外部对象 set app=createobject("excel.application")这样利用app就可以对excel对象进行操作

怎么用C\/C++语言读取excel文件的某一行某一列
曾用C++ Builder 写过EXCEL操作。一般有两种方法:1,用ADO连续EXCEL数据库,这种方式,操作可用SQL来操作。2,用OLE方式,这种方式可以达到EXCEL中大部分的功能和操作。以下供参考:\/*** 1--- ADO ***\/\/\/.h\/\/---#ifndef Unit1H#define Unit1H\/\/---...

C++Builder5如何实现准确读写Excel文件的某行某列数据
int i,j=1;ex=CreateOleObject(〃Excel.Application〃);\/\/启动Excel ex.OlePropertySet(〃Visible〃,(Variant)true); \/\/使Excel启动后可见 newxls=(ex.OleFunction(〃Workbooks〃)).OleFunction(〃Add〃);\/\/新建一个工作薄 \/\/使用OlePropertyGet()函数,可以将Excel工作薄中的数据读出。newxls...

C++如何读取EXCEL中特定行列的数据
\/\/通过OLE实现,获取当前活动单元格行号与列号 Range range=objApp.GetActiveCell();\/\/objApp 为_Application类对象 long RowNum=range.GetRow();\/\/获取行号 long ColNum=range.GetColumn();\/\/获取列号 range.SetValue2(COleVariant("HELLO EXCEL!"));\/\/向当前活动单元格写入HELLO EXCEL!

C++如何读取xls文件
想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行:1. 在StdAfx.h文件中加入:include <afxdb.h> include <odbcinst.h> 2. 通过ODBC直接创建Excel文件(暂定文件名:Demo.xls)\/\/创建并写入Excel...

C语言读取excel文件,像这种数据怎么跳过逗号只读取数据?
如图所示 抱歉,我不是特别了解C语言,所以用的是C++ 可追问,望采纳

相似回答