VC操作Excel

一、基本过程:
1.打开Excel对象
2.打开Workbook/Workbooks
3.打开Worksheet/Worksheets
4.选择表格Cell
5.若要合并单元格这要先做第四步,并设置单元格的值,然后选择Range,再设置其属性值,最重要的一
个属性值是:MergeCells
6.保存退出

二、在javascript中实现:
1.var   xls   =   new   ActiveXObject("Excel.Application");
  xls.visible   =   true;//false;
2.xls.workbooks.open(strSaveLocation);
  var   xlsbook   =   xls.activeworkbook;
3.var   xlssheet   =   xlsbook.worksheets(1);
4.xlssheet.cells(1,1).value   =   "js   op   excel";
或者:xlssheet.Range("A1").value="haha";
5.假设先有xlssheet.Range("A1").value="haha";
xlssheet.Range("A1:B2").MergeCells=true;
6.xlsbook.save;  
  xls.quit;  
  xls   =   null;  
  delete   xls;

三、在VC中实现:
_Application app;//Excel程序对象
 _Workbook book;//工作集对象
 _Worksheet sheet;//工作簿对象
 Workbooks books;
 Worksheets sheets;
 Range range;//Excel中的表格
 LPDISPATCH lpDisp;//自动化接口
 //COleVariant 变量
 COleVariant covTrue((short)TRUE),
    covFalse((short)FALSE),
    covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
 OleInitialize(NULL);
 AfxEnableControlContainer();
 //创建Excel程序
 if(!app.CreateDispatch("Excel.Application"))
 {
  AfxMessageBox("不能创建Excel程序");
  return;
 }
 app.SetVisible(TRUE);
 app.SetUserControl(TRUE);
 books.AttachDispatch(app.GetWorkbooks());
 if(!bTag)
 {
  book.AttachDispatch(books.Add(covOptional));
 }
 else{
  lpDisp=books.Open(strPath, //初始化.
  covOptional,covOptional,covOptional,covOptional,covOptional
  ,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional
  ,covOptional,covOptional,covOptional);
  book.AttachDispatch(lpDisp);
 }
 sheets.AttachDispatch(book.GetWorksheets());
 sheet.AttachDispatch(sheets.GetItem(COleVariant((long)1)));
 CString strHead=strFrom+"/r/n"+strData;
 range.AttachDispatch(sheet.GetUsedRange());
 range.AttachDispatch(range.GetColumns());
 long iColNum=range.GetCount();
 range.DetachDispatch();
 range.AttachDispatch(sheet.GetCells());
 range.SetItem(COleVariant(long(1)),COleVariant(long(iColNum+1)),COleVariant(strHead));
 if(!bTag)
 {
  range.AttachDispatch(sheet.GetCells());
  range.SetItem(COleVariant(long(1)),COleVariant(long(1)),COleVariant(_T("命令结构")));
  int nCount=m_edtStruct.GetLineCount();
  CString strStruct;
  m_edtStruct.GetWindowText(strStruct);
  if(""!=strStruct)
  {
   for(int i=0;i<nCount;i++)
   {
    CString strText;
    int nIndex=m_edtStruct.LineIndex(i);
    int nLen=m_edtStruct.LineLength(nIndex);
    m_edtStruct.GetLine(i, strText.GetBuffer(nLen),nLen);
    strText.ReleaseBuffer(nLen);
    range.AttachDispatch(sheet.GetCells());
    range.SetItem(COleVariant((long)(i+2)),COleVariant((long)1),COleVariant(strText));
   }
  }
 }
 int nDataLen=strData.GetLength();
 int nCurRow=3;
 for(int j=0;j<nDataLen/2;j++)
 {
  CString strTemp=strData.Mid(j*2,2);
  int nTemp=HexStringToInt(strTemp);
  for(int k=0x80;k!=0;k>>=1)
  {
   range.AttachDispatch(sheet.GetCells());
   if((nTemp&k)!=0)
    range.SetItem(COleVariant((long)(nCurRow)),COleVariant(long(iColNum+1)),COleVariant(_T("∨")));
   else range.SetItem(COleVariant((long)(nCurRow)),COleVariant(long(iColNum+1)),COleVariant(_T("×")));
   nCurRow++;
  }
  nCurRow++;
 }
 range.ReleaseDispatch();
 sheet.ReleaseDispatch();
 sheets.ReleaseDispatch();
 if(!bTag)
  book.SaveAs((COleVariant)strPath,covOptional,covOptional,covOptional,covOptional,covOptional
  ,0,covOptional,covOptional,covOptional,covOptional,covOptional);
 else
 {
  book.Save();
  book.Close(covOptional,COleVariant(strPath),covOptional);
 }
 book.ReleaseDispatch();
 books.Close();
 books.ReleaseDispatch();
 app.Quit(); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值