xml + xsl 应该很容易实现的。
或者 直接  用java 写一个写文件的程序文件内容就是你说的!

解决方案 »

  1.   

    就是一般的JSP网页+DB就可以搞定了
      

  2.   

    我觉得这个很简单的啊
    sevlet是最简单的,读写文件麻烦点,但是可以servlet与读文件结合
      

  3.   

    对头,我现在也用这个,可是有个问题,xsl的模板我看不太懂,不知道大家有什么看法
      

  4.   

    //aa.xsl
    <?xml version="1.0" encoding="gb2312" ?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <head>
    <title> 销售报告</title>
    <style>
    body,BlueIdea,team,blue_ID,blue_name,blue_text,blue_time,blue_class{ font: 12px "宋体", "Arial", "Times New Roman"; } 
    table { font-size: 12px; border: 0px double; border-color: #99CC99 #99CC99 #CCCCCC #CCCCCC; cellpadding:3;cellspacing:3; bgcolor:#eeeeee; text-decoration: blink} 
    span { font-size: 12px; color: red; }
    </style>
    <script>
    function taxis(x) 

    stylesheet=document.XSLDocument; 
    source=document.XMLDocument; 
    sortField=document.XSLDocument.selectSingleNode("//@order-by");
    sortField.value=x; 
    Layer1.innerHTML=source.documentElement.transformNode(stylesheet); 
    }
    </script>
    </head>
    <body>
    <p align="center"><span>各地区季度评估</span></p>
    <div id="Layer1" name="Layer1">
    <xsl:apply-templates select="BlueIdea" />
    </div>
    </body>
    </html>
    </xsl:template>
    <xsl:template match="BlueIdea">
    <table width="800" border="1" align="center" cellpadding="1" cellspacing="1" bordercolordark="#ffffff" bordercolorlight="#ADAAAD">
    <tr bgcolor="#FFCC99" align="center">
    <td style="cursor:s-resize" onclick="taxis('blue_ID1')">地区名称</td>
    <td style="cursor:s-resize" onclick="taxis('blue_ID')">年份</td>
    <td style="cursor:s-resize" onclick="taxis('blue_name')">季度</td>
    <td style="cursor:s-resize" onclick="taxis('blue_text')">销售计划</td>
    <td style="cursor:s-resize" onclick="taxis('blue_time')">销售实际</td>
    <td style="cursor:s-resize" onclick="taxis('blue_timex')">完成百分比</td>
    <td style="cursor:s-resize" onclick="taxis('blue_class')">回收计划</td>
    <td style="cursor:s-resize" onclick="taxis('blue_add')">回收实际</td>
    <td style="cursor:s-resize" onclick="taxis('blue_addx')">完成百分比</td>
    <td style="cursor:s-resize" onclick="taxis('blue_add1')">毛利计划</td>
    <td style="cursor:s-resize" onclick="taxis('blue_add2')">毛利实际</td>
    <td style="cursor:s-resize" onclick="taxis('blue_add2x')">完成百分比</td>
    <td style="cursor:s-resize" onclick="taxis('blue_add3')">费用计划</td>
    <td style="cursor:s-resize" onclick="taxis('blue_add4')">费用实际</td>
    <td style="cursor:s-resize" onclick="taxis('blue_add5')">贡献</td>
    </tr>
    <xsl:apply-templates select="team"/>
    </table>
    </xsl:template>
    <xsl:template match="team">
    <tr align="left">
    <xsl:apply-templates select="blue_ID1" />
    <xsl:apply-templates select="blue_ID" />
    <xsl:apply-templates select="blue_name" />
    <xsl:apply-templates select="blue_text" />
    <xsl:apply-templates select="blue_time" />
    <xsl:apply-templates select="blue_timex" />
    <xsl:apply-templates select="blue_class" />
    <xsl:apply-templates select="blue_add" />
    <xsl:apply-templates select="blue_addx" />
    <xsl:apply-templates select="blue_add1" />
    <xsl:apply-templates select="blue_add2" />
    <xsl:apply-templates select="blue_add2x" />
    <xsl:apply-templates select="blue_add3" />
    <xsl:apply-templates select="blue_add4" />
    <xsl:apply-templates select="blue_add5" />
    </tr>
    </xsl:template>
    <xsl:template match="blue_ID1">
    <td bgcolor="#eeeeee">
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_ID">
    <td bgcolor="#eeeeee">
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_name">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_text">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_time">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_timex">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_class">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_add">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_addx">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_add1">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_add2">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_add2x">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_add3">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_add4">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    <xsl:template match="blue_add5">
    <td>
    <xsl:value-of />
    </td>
    </xsl:template>
    </xsl:stylesheet>
    //调用的xml下边
      

  5.   

    <?xml version="1.0" encoding="gb2312" ?>
    <?xml-stylesheet type="text/xsl" href="aa.xsl" ?>
    <%@page contentType="text/html;charset=gb2312" %>
    <%@ page language="java" import="java.lang.*,java.util.*,java.util.Date,javax.ejb.*,javax.naming.*,crmbg.*"%><BlueIdea>  <team>
        <blue_ID1><%=aa%></blue_ID1>
        <blue_ID><%=bb%></blue_ID>
        <blue_name><%=cc%></blue_name>
        <blue_text><%=dd%></blue_text>
        <blue_time><%=ee%></blue_time>
    <blue_timex><%=ff%></blue_timex>
        <blue_class><%=gg%></blue_class>
        <blue_add><%=hh%></blue_add>
    <blue_addx><%=ii%></blue_addx>
    <blue_add1><%=jj%></blue_add1>
    <blue_add2><%=kk%></blue_add2>
    <blue_add2x><%=ll%></blue_add2x>
    <blue_add3><%=mm%></blue_add3>
    <blue_add4><%=nn%></blue_add4>
    <blue_add5><%=oo%></blue_add5>
      </team>
       </BlueIdea> // aa,bb,cc,dd,ff.....是变量