Excel问题代码

 

 EXCEL_Application m_app;
 EXCEL_Range m_range;
 EXCEL_Workbook m_workbook;
 EXCEL_Workbooks m_workbooks;
 EXCEL_Worksheet m_worksheet;
 EXCEL_Worksheets m_worksheets;
 EXCEL_ShapeRange m_shaperange;
 EXCEL_Shapes m_shapes;
 EXCEL_Shape m_shape;
 EXCEL_Window m_window;
 EXCEL_Pane m_pane;
 EXCEL_Picture m_picture;
 EXCEL_Pictures m_pictures;
 LPDISPATCH lpDisp;
 COleVariant vResult;
 COleVariant covTrue((short)TRUE);
 COleVariant covFarse((short)FALSE);
 COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);  

 CLSIDFromProgID(L"Excel.Application",&classID); 
 if (SUCCEEDED(::GetActiveObject(classID,NULL,&Unknown)))
 {
  m_app.GetScreenUpdating();
  Unknown->QueryInterface(IID_IDispatch,(void**)&dispatch);
  m_app.AttachDispatch(dispatch,false);
  m_app.GetActiveWorkbook();

  m_workbooks = m_app.GetWorkbooks();         //得到workbook或者m_workbooks.AttachDispatch(m_app.GetWorkbooks());
  m_workbook = m_app.GetActiveWorkbook();
  m_window = m_workbook.GetActiveSheet();
  m_workbooks.GetApplication();    //在当前excel中嵌

  EnumWindows(EnumWindowsProc,0);
  if(main_wnd)
  {
   EnumChildWindows(main_wnd,EnumChildProc,0);
  }
  m_worksheets = m_workbook.GetWorksheets();//得到worksheets //  或m_worksheets.AttachDispatch(m_workbook.GetWorksheets());
  m_worksheet = m_workbook.GetActiveSheet();   //得到当前活跃sheet
     m_shapes = m_worksheet.GetShapes();   //从Sheet对象上获得一个Shapes 
  double Ex_bang = 96.0/72.0;
  double Ey_bang = 96.0/72.0;
  double widthPoints=(right-left+maxPenWith*2)/Ex_bang;  //  96/72==每磅多少像素
  double heightPoints=(bottom-top+maxPenWith*2)/Ey_bang;

  BookName = m_workbook.GetName();
  
  double xx=(lEmebedPosX-EX1-44-maxPenWith/2)*1.0/Ex_bang; //计算图像相对位置EDF
  double yy=(lEmebedPosY-EX2-51-maxPenWith/2)*1.0/Ey_bang;
 
  m_shape = m_shapes.AddPicture(strFileName,false,true,xx,yy,widthPoints,heightPoints);
//  (float)m_range.GetLeft().dblVal,(float)m_range.GetTop().dblVal,   //添加一个图片
//  (float)m_range.GetWidth().dblVal,(float)m_range.GetHeight().dblVal);
      float hh = m_shape.GetHeight();
   float ww = m_shape.GetWidth();
   CString hw;
   hw.Format(L"hh = %d, ww == %d",hh,ww);
   MessageBox(hw);
  
  m_shape.ZOrder(4);  //最顶层显示
  m_app.SetVisible(true);

  m_app.GetScreenUpdating();
//  m_shape.SetLeft(xx); //左上角的坐标点sheet(0,0)  (200,200,
//  m_shape.SetTop(yy);

  m_range.ReleaseDispatch();
  m_shape.ReleaseDispatch();
  m_shapes.ReleaseDispatch();
  m_shaperange.ReleaseDispatch();
  m_worksheet.ReleaseDispatch();
  m_worksheets.ReleaseDispatch();
  m_workbook.ReleaseDispatch();
  m_workbooks.ReleaseDispatch();
  m_window.ReleaseDispatch();
  m_pane.ReleaseDispatch();

  m_workbook.Close(covOptional,covOptional,covOptional);//关闭Workbook对象
  m_workbooks.Close();  //关闭Workbooks对象

  m_app.ReleaseDispatch();  //释放_Application
  m_app.Quit();     //退出_Application

  m_pPageData->m_PenData.RemoveAll();  //清屏  刷新
  RedrawTransparent(1);
  return;
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Excel地区代码表是一个用来标示不同地区的代码表格,在Excel中使用这个表可以方便地快速查找和识别特定地区。地区代码表包含了全球大部分国家和地区的代码,每个地区都有一个唯一的代码Excel地区代码表包含了以下信息: 1. 地区代码:每个地区都有一个特定的代码,用来唯一标示该地区。这个代码通常由数字组成,有些地区的代码也可能包含字母。 2. 地区名称:对应于每个地区代码的地区名称。这个名称通常是该地区的官方名称或者常用名称。 3. 国家代码:对于国家地区,还会包含一个国家代码。国家代码用来区分不同的国家,通常是由两个字母组成的。 4. 系统默认地区代码Excel中的默认地区代码。这个代码表示当前操作系统所使用的地区。 使用Excel地区代码表的好处有: 1. 标示和识别地区:通过地区代码可以快速准确地标示和识别特定的地区,避免了地区名称存在的歧义性和翻译问题。 2. 数据整理和处理:在处理大量数据时,通过使用地区代码表可以方便地对数据进行分类、筛选和汇总,提高工作效率。 3. 地区设置:在Excel中可以通过地区代码表设置特定地区的语言、货币、时间格式等,使得工作更加符合地区的要求。 4. 地区数据分析:通过使用地区代码表,可以对不同地区的数据进行比较和分析,帮助找出不同地区的特点和趋势。 总的来说,Excel地区代码表是一个有助于标示和识别地区的工具,可以为Excel用户提供方便和准确的地区信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值