目前我知道的方法有
1、利用MSOWC.CAB在网页中某个位置显示excel;
2、利用frame直接将src指向某一excel文件;
目前需求为,客户端从服务器处获取excel文件,然后在客户端对该文件进行操作,最后能上传(这部分先不用考虑)。不知道用什么方法好一些,还有对excel的控制如何实现。

解决方案 »

  1.   

    oExcel = new ActiveXObject('Excel.Application');
    oExcelSheet = new ActiveXObject('Excel.Sheet');
    oExcelSheet.Activate();
    oExcelSheet.ActiveSheet.Cells(1,1).Value = "Halo, world";
    oExcelSheet.SaveAs("C:\TEST.XLS");
    oExcelSheet.Application.Quit();这是操作的方法 。
      

  2.   

    可以先显示出来 直接save..
      

  3.   

    to petes(喜力喜) :有没有具体一些的控制方法
      

  4.   

    to petes(喜力喜) :我要求的是从服务器端获取到excel文件后再进行操作,而你的方法好像是在客户端自己创建excel文件。
      

  5.   

    需要做ActiveX组件,将OLE嵌入到ActiveX,JS操作ActiveX的方法和属性就可以了.
    例:
    void CWebOfficeView::EmbedAutomateDoc(void)
    {
    BeginWaitCursor();
    CDC* pDC;
    pDC=GetDC();
    COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
    CWebOfficeOleClientItem* pItem=NULL;
    TRY
    {
    CWebOfficeDoc* pDoc=GetDocument();
    ASSERT_VALID(pDoc);
    pItem=new CWebOfficeOleClientItem(pDoc);
    ASSERT_VALID(pItem);
    CLSID clsid;
    if(FAILED(::CLSIDFromProgID(L"Word.Document.8",&clsid)))
    AfxThrowMemoryException();
    if(m_FileName.GetLength()==8)
    {
    if(!pItem->CreateNewItem(clsid))
    AfxThrowMemoryException();
    }
    else
    {
    if(m_FileName.Find("Http://",0)!=-1)
    {
    if(!pItem->CreateFromFile(DownTemplate(m_FileName),clsid))
    {
    AfxThrowMemoryException();
    }
    }
    else
    {
    if(!pItem->CreateFromFile(DownTemplate(m_FileName),clsid))
    {
    AfxThrowMemoryException();
    }
    }
    }
    ASSERT_VALID(pItem);
    pItem->DoVerb(OLEIVERB_SHOW,this);
    m_pSelection=pItem;
    lpDisp=pItem->GetIDispatch();

    _Application_Word m_WordApp;
    _Document_Word m_WordDoc;
    m_WordDoc.AttachDispatch(lpDisp,TRUE);
    m_WordDoc.Activate();
    m_WordApp=m_WordDoc.GetApplication();

    m_WordDoc.ReleaseDispatch();
    m_WordApp.ReleaseDispatch();
    pDoc->UpdateAllViews(NULL);
    }
    CATCH(COleException,e)
    {
    char strErrorBuf[255];
    e->GetErrorMessage(strErrorBuf,255,NULL);
    AfxMessageBox(strErrorBuf,MB_ICONINFORMATION);
    if (pItem!=NULL)
    {
    ASSERT_VALID(pItem);
    pItem->Delete();
    }
    }
    END_CATCH
    EndWaitCursor();
    }
      

  6.   

    to gjd111686(数字金刚) :我现在用java开发的,activex可以吗,怎么做
      

  7.   

    利用MSOWC.CAB,读取服务器里Excel文件里的数据在网页中某个位置显示excel工作表,
    比较笨的办法,就是在工作表上方放N排文本框(或其他控件),然后上传前利用JS将工作表里的资料copy进控件内。
      

  8.   

    to colee(浪漫的惊喜) :你说的这个方法在我的需求下不行啊,我要求对excel的操作是比较复杂的,程序做死了是根本不能接受的
      

  9.   

    smallrole(小角色):不是吓我吧,本周内我必须解决的问题啊,工作、老婆、前途......
      

  10.   

    由于Java的限制,直接操作Word肯定是不行的,但是也是可以的.<Java深度历险>里有一篇专门讲了.
      

  11.   

    不关用什么开发,客户端是没有限制的,我做的ActiveX(用VC做)用在Tomcat上没有问题,因为Active控件与服务器无关.