十五年专注于
液压缸筒生产

全国咨询热线:
400-086-9833

   热门关键词修理 加工 活塞杆 缸筒 不锈钢

无标题文档

天圆液压产品中心

当前位置:主页 > 行业资讯 >

在AutoCAD中珩磨管动态读取Excel数据

时间:2016-09-29 08:00来源:天圆网站 作者:天圆液压 点击:
在现实的事变中,我们常常要对一些表格数据举办处理赏罚,假如先把这些表格数据通过Excel处理赏罚,再导入到AutoCAD, 那绝对会起到事半功倍的结果。跟着Automation编程技能的呈现,我们可以很利便地实现这一点了,下面是个 ObjectARX的例子,其成果是动态关联Exce

 //开释Dispatch 
 Range range;
 
   hr = pUnk->QueryInterface(IID_IDispatch, (void **)&pRunDisp);
   
 } 
 Worksheets sheets;
  
 range.AttachDispatch(range.GetRows());
 book.ReleaseDispatch ();
 
 { 
 row_num=range.GetCount();
 Range iCell;

 sheets.ReleaseDispatch ();

return RTERROR;
  MessageBox(NULL,"初始化COM支持库失败!\n无法节制Excel!", \
 range.AttachDispatch(sheet.GetUsedRange());
  ::Sleep(10);
 CString cstr;
 iCell.ReleaseDispatch ();
 CString SheetName=sheet.GetName();
 range.ReleaseDispatch ();
 {

假如要输出到Excel的话,要害函数就是:
 lpDisp=app.GetActiveSheet();
   
  ads_printf("\n表格%s共%d行,%d列",SheetName,row_num,col_num);
    
  return RTERROR;
 _Workbook book;
 IDispatch *pRunDisp = NULL;
  ::MessageBox(NULL, "没有发明Excel!", "TrueTable", MB_ICONHAND);
 sheet.AttachDispatch(lpDisp);
 }
 if (!pRunDisp) 
 else
  
 sheet.ReleaseDispatch ();

//读取sheet名
 //读写数据了
那绝对会起到事半功倍的结果。跟着Automation编程技能的呈现,我们可以很利便地实现这一点了,下面是个
      
 iCell.SetItem(COleVariant(i),COleVariant(j),COleVariant(cstr)); 

//获适当前活泼sheet
        covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);      
int DynamicReadFromExcel() 
        covTrue((short)TRUE),
        covFalse((short)FALSE),
  
 app.AttachDispatch (pRunDisp);

在现实的事变中,我们常常要对一些表格数据举办处理赏罚,天圆液压缸筒,假如先把这些表格数据通过Excel处理赏罚,再导入到AutoCAD,
{
 //常用变量界说
  MessageBox(NULL,"\n当前表格没稀有据!", \
  
 books.ReleaseDispatch ();

//已经行使地区的起始行、列:
  app.ReleaseDispatch (); 

 //获得所有Cells,此时,range是cells的荟萃 
  }


ObjectARX的例子,大缸筒加工,其成果是动态关联Excel,然后读取其数据,并将这些数据打印在文本域中。

//动态从Excel读取数据
 range.AttachDispatch(sheet.GetUsedRange());
 long StartRow=range.GetRow();       //起始行
  
  return RTERROR;
  {
  app.ReleaseDispatch (); 

if (pUnk)  pUnk->Release();
  if(SUCCEEDED(hr)) 
 
 //假若有单位格正处于编辑状态中,此操纵不能返回,会一向守候
   break;
 ads_printf("\n");
 //ads_printf("\n%s",SheetName); 
 IUnknown *pUnk = NULL;
  ads_printf("\n");
 //关联已经运行的Excel实例
 
 {
 for(long i=1;i<=5;i++) //做5次实行
 }

 {
  {
 {
  
   iCell.AttachDispatch(range.GetItem (COleVariant(i),COleVariant(j)).pdispVal );
 range.AttachDispatch(sheet.GetCells()); 
 return RTNORM;

//回收MFC方法初始化COM库,措施竣事时COM库会自动开释
 }
  HRESULT hr = GetActiveObject(clsid, NULL, (IUnknown**)&pUnk);
 if(lpDisp==NULL)
 range.AttachDispatch(sheet.GetUsedRange());
   vResult =iCell.GetText();
 CLSIDFromProgID(L"Excel.Application", &clsid);  
 if(col_num<2 && row_num<2)     //此sheet为空
 {
   //读取单位格文本
 range.AttachDispatch(range.GetColumns());
 //已经行使的列数:
 app.ReleaseDispatch (); 
 if(!AfxOleInit())
 long row_num;
   cstr=vResult.bstrVal;
 //关联Excel
 COleVariant vResult;

 for(long i=StartRow;i<StartRow+row_num;i++)

return RTERROR;
  }
 Workbooks books;
 
   ads_printf("%s    ",(LPTSTR)cstr);
   "TrueTable",MB_IConERROR | MB_OK); 
 col_num=range.GetCount();

}

 COleVariant
 
 
 }
 _Worksheet sheet;
 {
 }

  for(long j=StartCol;j<StartCol+col_num;j++)

 _Application app;    
   "TrueTable",MB_IConERROR | MB_OK);  
  
  MessageBox(NULL, "没有发明有用的表格!", \
 //已经行使的行数:
 long StartCol=range.GetColumn();    //起始列

 CLSID clsid;

LPDISPATCH lpDisp;     
 }

   "TrueTable",MB_IConERROR | MB_OK); 
   //写单位格文本
 long col_num;
(责任编辑:admin)
分享按钮
------分隔线----------------------------