Excel数据提取C++代码(仅供参考)

摘要:
lgUsedColumnNum=范围.get_计数();sde=新字符[dwNum];chareps[]=“”;intk=0;COleVariantnew_值(de);}}//strSrc.ReleaseBuffer();prename=“code”class=“cpp”>//日期char*car=NULL//车次char*car_ station=NULL;
       COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);  
       sheets.AttachDispatch(book.get_Sheets());//获得工作簿中的sheets的容器
       sheet.AttachDispatch(sheets.get_Item(COleVariant((short)1)));//获得第一个sheet
       //获得sheet指定区域
       //得到区域的行数
       long lgUsedRowNum=0;
       range.AttachDispatch(sheet.get_UsedRange(),true);
       range.AttachDispatch(range.get_Rows(),true);
       lgUsedRowNum=range.get_Count();
       //得到区域的列数
       long lgUsedColumnNum=0;
       range.AttachDispatch(range.get_Columns(),true);
       lgUsedColumnNum=range.get_Count();
       //得到全部的Cells
      range.AttachDispatch(sheet.get_Cells(),true);
      sheet.ReleaseDispatch();
	 
      lpDisp=sheets.Add(vtMissing,vtMissing,_variant_t((long)1),vtMissing);
      sheet.AttachDispatch(lpDisp);
      sheet.put_Name(_T("提取"));
      //遍历整个Excel表格
	  long cux=0;
	  long cuy=0;
	  int temcux=0;
	  int ColumnNum=0;
	  int RowNum=0;
      CRange newCell;
      for(int i=3;i<=lgUsedRowNum;i++)
      {
	  // for(int j=1;j<=lgUsedColumnNum;j++)
	   //{
		   newCell.AttachDispatch(range.get_Item(COleVariant((long)i),COleVariant((long)1)).pdispVal,true);
		   VARIANT varItemName=newCell.get_Text();
		   CString strItemName;      //第i行第j列的元素值
		   strItemName=varItemName.bstrVal;//获得当前单元格的元素
		   
		   if(strItemName.GetLength()>10)   //车次行
		   {
			   // cux=temcux+abs(RowNum-ColumnNum);
			   //ColumnNum=0;
			   //RowNum=0;
			   //**********************
			    DWORD dwNum=WideCharToMultiByte(CP_OEMCP,NULL,strItemName,-1,NULL,0,NULL,FALSE);
				char *sde;
			    sde=new char[dwNum];
			    WideCharToMultiByte(CP_OEMCP,NULL,strItemName,-1,sde,dwNum,NULL,FALSE);
                int pos = 0;
                char seps[]   = " ";
                char *token;
			    token = strtok( sde, seps );
				int k=0;
                while( token != NULL )
                {
					k++;
					if(k==1)
					{
                       CString de;
					   de=token;
                       COleVariant new_value(de);  
                       CRange start_range = sheet.get_Range(COleVariant(_T("A1")), covOptional);  
                       CRange write_range = start_range.get_Offset(COleVariant((long)cux), COleVariant((long)0));  
                       write_range.put_Value2(new_value);  
                       start_range.ReleaseDispatch();  
                       write_range.ReleaseDispatch(); 
					   
					}
					else if(k==7)
					{
						
					}
					else if(k==9)
					{
						
					}
                  token = strtok( NULL, seps );
                  if(token == NULL)
				  {
					  cux++;
					 // break;
				  }
                }
              //strSrc.ReleaseBuffer();
			   //***********************
			 
导入数据库代码
<pre name="code" class="cpp">
	  char *date=NULL;//日期
	  char *car=NULL;//车次
	  char *car_station=NULL;//车站
	  char *start_time=NULL; //开车时间
	  char *stop_time=NULL;//到站时间
	  int down_Num;//下站人数
	  int up_Num;//上站人数
	  char *whether;//天气
	  CString FN;//文件名
	  FN=files[i].c_str();
	  FN=FN.Mid(8,8);   //CString 转string
	  whether="无";
      CRange newCell;
      for(int i=1;i<=lgUsedRowNum;i++)
      {
	       for(int j=1;j<=lgUsedColumnNum;j++)
	      {
		      newCell.AttachDispatch(range.get_Item(COleVariant((long)i),COleVariant((long)j)).pdispVal,true);
		      VARIANT varItemName=newCell.get_Text();
			  CString strItemName;      //第i行第j列的元素值
		      strItemName=varItemName.bstrVal;//获得当前单元格的元素
			  DWORD dwNum=WideCharToMultiByte(CP_OEMCP,NULL,FN,-1,NULL,0,NULL,FALSE);
			  date=new char[dwNum];
			  WideCharToMultiByte(CP_OEMCP,NULL,FN,-1,date,dwNum,NULL,FALSE);
			  if(strItemName==_T("数据源"))
			  {
				  break;
			  }
			  if(j==1&&strItemName.GetLength()<4&&strItemName.GetLength()>0&&strItemName!=_T("数据源"))
			  {
		          DWORD dwNum1=WideCharToMultiByte(CP_OEMCP,NULL,strItemName,-1,NULL,0,NULL,FALSE);
			      car=new char[dwNum1];
			      WideCharToMultiByte(CP_OEMCP,NULL,strItemName,-1,car,dwNum1,NULL,FALSE);
			      break;
			  }
			  else if(j==1&&strItemName==_T(""))
			  {
				  break;
			  }
			  else if(j==1&&strItemName!=_T("")&&strItemName.GetLength()!=3&&strItemName!=_T("数据源"))
			  {
				  DWORD dwNum1=WideCharToMultiByte(CP_OEMCP,NULL,strItemName,-1,NULL,0,NULL,FALSE);
			      car_station=new char[dwNum1];
			      WideCharToMultiByte(CP_OEMCP,NULL,strItemName,-1,car_station,dwNum1,NULL,FALSE);
				  continue;
			  }
			  else if(j==2)
			  {
				  if(strItemName.GetLength()==0)
				  {
					  strItemName=_T("0");
				  }
				 
			  }
			  else if(j==3)
			  {
				
			  }
			  else if(j==4)
			  {
				
			  }
			  else if(j==5)
			  {
				  if(strItemName.GetLength()==0)
				  {
					 strItemName=_T("0");
				  }
				  up_Num=_ttoi(strItemName);
				  break;
			  }
	      }
		  if(car_station!=NULL)
		  {
			  
			   dd.Add(date,car,car_station,stop_time,start_time,down_Num,up_Num,whether);
			   car_station=NULL;
			  
		   }
     }
	 
    



免责声明:文章转载自《Excel数据提取C++代码(仅供参考)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CRC-16校验C#代码日记账导入API下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python面向对象(类和对象)

自从存在以来,Python一直是面向对象的语言。 因此,创建和使用类和对象是非常容易的。 本章将学习如何使用Python面向对象编程。如果您以前没有面向对象(OO)编程的经验,可能需要查阅介绍面向对象(OO)编程课程或至少学习一些有关教程,以便掌握基本概念。下面是面向对象编程(OOP)的一个小介绍,以帮助您快速入门学习 -OOP术语概述类 - 用于定义表示用...

PowerShell脚本之Invoke-Expression Hook

目录 PowerShell脚本之Invoke-Expression Hook 开发环境 Hook的起因 Hook的原理 Hook的流程 patch程序的编写 0x01--原始DLL的修改 0x02--3环程序的编写 0x03--驱动程序的编写 0x04--总结和梳理: 效果展示 PowerShell脚本之Invoke-Expressio...

WinInet:HTTPS 请求出现无效的证书颁发机构的处理

     首先,微软提供的WinInet库封装了对网页访问的方法。      最近工作需要从https服务器获取数据,都知道https和http网页的访问方式不同,多了一道证书认证程序,这样就使得https在请求起来比http要复杂的多;好在,WinInet库中提供了对https网页请求的处理,这样就不需要在使用openssl中的一些方法来复杂化程序了。...

通过WriteProcessMemory改写进程的内存

http://www.cnblogs.com/feiyucq/archive/2009/10/21/1587628.html 以PROCESS_ALL_ACCESS权限打开进程以后既能够使用ReadProcessMemory读取程序内存,也能够使用WriteProcessMemory改敲代码的内存,这也是一些内存补丁使用的招数,下面是程序的实现代码 #...

七、玩转select条件查询

前言:   电商中:我们想查看某个用户所有的订单,或者想查看某个用户在某个时间段内所有的订单,此时我们需要对订单表数据进行筛选,按照用户、时间进行过滤,得到我们期望的结果。   此时我们需要使用条件查询来对指定表进行操作,我们需要了解sql中的条件查询常见的玩法。 本篇内容 1、查询条件语法 2、条件查询运算符详解(=、<、>、<=、&g...

SAP Study Notes: BW Queriy-Variables(变量)

About Variable:1.Variable 是和InfoObject绑定的,可用于任何含有该IO的query中。2.Variable有以下几种类型:Characteristic:用于限制Char。 Text:用于在报表动态显示文本。 Hierarchy:用于限制Hierarchy。 Hieararchy Node:用于限制Hierarchy Nod...