excel的格式如上图,需求是把它读到页面上,然后用户可以随意编辑,包括表头,最后导出到客户端。
主要问题有3个,
1:怎么读入这种不规则的excel?是不是遍历一遍,然后一个单元格一个单元格的内容去画么?
2:用户需要编辑表头,比如 “上年累计”,用户需要把它变成“上季度累计 ”或者其他条件,那么对应的数据需要从数据库(sqlserver)里面读取,然后填入该表格中,最后导出到客户端。其他的表头也需要用样的功能,这个要怎么实现?
3:导出的时候我记得这种不规则的好像也是要自己用代码控制单元格的样式吧~?有没有好的方法?我找了个aspose.cells,还在研究文档,这些需求实在不知道要怎么弄,时间比较紧,最高只能给出200分了,如果分不够还可以开贴加,请大家帮帮忙~!谢谢啦~

解决方案 »

  1.   

    VSTO 的Excel07.
    完全可以实现。
    直接遍历行
      

  2.   

    使用报表控件如fast report结合XML序列化实现
    有个选举系统据实现这样的表格
      

  3.   

    用流的形式来实现。你可以试下
    例子:function htmlToExcel(elTableOut,elDiv){   
        try{
       //设置table的border=1,否则在excel里看不到表格线 
            elTableOut.border = 1;
            var oRangeRef = document.body.createTextRange();   
            oRangeRef.moveToElementText( elDiv );   
            oRangeRef.execCommand("Copy");   
               
            var oXL = new ActiveXObject("Excel.Application");  
            var oWB = oXL.Workbooks.Add ;   
            var oSheet = oWB.ActiveSheet ;   
            oSheet.Paste();   
            oSheet.Cells.NumberFormatLocal = "@";   
            oSheet.Columns("D:D").Select;   
            oXL.Selection.ColumnWidth = 20; 
            oXL.Visible = true;        
            oSheet = null;   
            oWB = null;   
            appExcel = null;
       //设置回table的border=0,否则页面表格线会加粗
       elTableOut.border = 0;
        }catch(e){   
            alert(e.description)   
        }