如题
服务器上不能安装Office,所以不能调用com组件,除了做个winform来获取数据本地生成外,还有什么办法。
请给出详细代码或连接网页地址,谢谢

解决方案 »

  1.   

    用水晶报表,但是不知道服务器没安装office导出会不会有影响
    应该没关系或者用table布局。
      

  2.   

    用table布局怎么弄。请详细点。
      

  3.   

    不装office那就把Interop.Excel.dll Interop.Office.dll Interop.VBIDE.dll这3个dll引用到项目里去。用这3个,就可以创建EXCEL对象;再调用相关方法,实现对excel的操作至于模板,跟装不装office就没关系了,就把它当做一般性文档,来做文件的复制、移动、删除操作就是了附个例子
    下面是一个简单的例子,打开一个定义好的Excel文件,这个文件是作为报表的模板,然后向模板的指定格子里填充数据,形成一个报表,在web方式下可以按照指定的命名方式在服务器上生成一个
    excel文件,之后传送到客户端,由客户端启动excel进行打印。
     
    Excel.Application m_objExcel = null;
    Excel._Workbook m_objBook = null;
    Excel.Sheets m_objSheets = null;
    Excel._Worksheet m_objSheet = null;
    Excel.Range m_objRange = null;
           
    object m_objOpt = System.Reflection.Missing.Value;
    try
    {
            m_objExcel = new Excel.Application();
    m_objBook = m_objExcel.Workbooks.Open("z:\\Book1.xls", m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);
     
            m_objSheets = (Excel.Sheets)m_objBook.Worksheets;
            m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1));
     
     
            string[] info = new string[5] { "Cure", "26", "dahuzizyd.cnblogs.com", "汉", "按时 ?放奥斯丁奥斯丁非是否奥斯丁非" };
            m_objRange = m_objSheet.get_Range("B1", m_objOpt);
            m_objRange.Value = info[0];
            m_objRange = m_objSheet.get_Range("E1", m_objOpt);
            m_objRange.Value = info[1];
            m_objRange = m_objSheet.get_Range("B2", m_objOpt);
            m_objRange.Value = info[2];
            m_objRange = m_objSheet.get_Range("E2", m_objOpt);
            m_objRange.Value = info[3];
            m_objRange = m_objSheet.get_Range("A3", m_objOpt);
            m_objRange.Value = info[4];
                                   
            m_objExcel.DisplayAlerts = false;
     
            m_objBook.SaveAs("z:\\Book2.xls", m_objOpt, m_objOpt,
            m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange,
                                            m_objOpt, m_objOpt, m_objOpt, m_objOpt);
     
    }
    catch (Exception ex)
    {
            MessageBox.Show(ex.Message);
    }
    finally
    {
            m_objBook.Close(m_objOpt, m_objOpt, m_objOpt);
            m_objExcel.Workbooks.Close();
            m_objExcel.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objBook);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(m_objExcel);
            m_objBook = null;
            m_objExcel = null;
            GC.Collect();
    }
      

  4.   


    其实就是,你想办法组装一个Html的表格,然后将这个html表格的代码Response.Write到Excel保存即可
    所以问题的关键是如何用程序构建这个html表格
    这个解决了你的问题也就解决了
      

  5.   

    用microsoft reportview做个简单的报表,然后就可以打印了。
      

  6.   

    你直接生成一个html表格table,格式和excel一样,然后把这个页面导出成excel文件格式就行了
      

  7.   

    楼主 有这样demo没有?能共享不?
      

  8.   

     
    这样不需要在服务器安装office????