可以先用sql语句取得数据(这个比较麻烦,但是可以办到),然后将数据按照你需要的格式保存在excel文件里,缩进可以空一个单元格。

解决方案 »

  1.   

    大哥,能不能详细一点,画面不但是要显示出来,还要在某些项可以在画面上修改?用excel行吗?
    c#里用excel?请大哥们指教!!谢谢
      

  2.   

    申明一点,我说的表格形式,指的是html中的<table>,<tr>,<td>形式,在c#里实现这种方式的表达所以难!!我做的是MRP的一部分.各位,快帮帮忙,谢谢!!
      

  3.   

    首先讲你得数据从数据库中读出来DataTable dt
    在你要输出得地方用一个id=s runat=server 得标记下一步就是生成你所要得表格s.InnerHtml+="<table //your style>";
     
    int columnNum=dt.Columns.Count;
    foreach(DataRow dr in dt.Rows)
    {
       s.InnerHtml+="<tr>";
       for(int i=0;i<columnNum;i++)
       {
          s.InnerHtml+="<td>";
          s.InnerHtml+=dr[i].ToString();
          s.InnerHtml+="</td>";
       }
       s.InnerHtml+="</tr>";
    }
    s.InnerHtml+="</table>";
    当然如果要设定显示几行,对columnNum修改就行了
      

  4.   

    打错了,是几列
    如果要控制显示几行
    那么改为
    int rowNum=yourValue;
    rowNum=rowNum>dt.Rows.Count?dt.Rows.Count:rowNum;
    for(int j=0;j<rowNum;j++)
    {
       s.InnerHtml+="<tr>";
       for(int i=0;i<columnNum;i++)
       {
          s.InnerHtml+="<td>";
          s.InnerHtml+=dt.Rows[j][i].ToString();
          s.InnerHtml+="</td>";
       }
       s.InnerHtml+="</tr>";}
      

  5.   

    还是不太明白,谁能把上面的(包括SQL语句)完整写出来,分全给他了!!
      

  6.   

    zsh_olddog(olddog),你的做法,达不到效果:再重申一边,效果是这样的::
                (*******)     第一阶段     第二阶段     第三阶段
                 requireqty       100          200          400
      第一道工序 requiredate      2004/10/5   2004/11/5     2004/12/13
                  inventory       50          100            90
      
       
                  requireqty     500           600          700  
      第二道工序  requiredate    2004/10/8     2004/11/13    2004/12/14    
                  inventory      70            80            56数据库字段是这样的:
        stage      process   requireqty requiredate  inventory  (这几个字段)
    (参考值)第一阶段  第一道工序   100        2004/10/5     50  
              第一阶段  第二道工序   500        2004/10/8     70
              第二阶段  第一道工序   200        2004/11/5     100
              第二阶段  第二道工序   600        2004/11/13    80
              第三阶段  第一道工序   400        2004/12/13    90
              第三阶段  第二道工序   700        2004/12/14    56
    谢谢!!!请江湖高手赐教!!急!!
      

  7.   

    ding,可查交叉表方面的资料,你要实现的的交叉的功能
      

  8.   

    SELECT stage, 
        SUM(CASE process WHEN '第一道工序' THEN requireqty ELSE 0 END) AS Q1,
        SUM(CASE process WHEN '第二道工序' THEN requireqty ELSE 0 END) AS Q2,
    FROM 表名
    GROUP BY stage
    你试试这个表不知能否满足你的要求
      

  9.   

    不太难得问题吧。首先用HTML画出来你要实现的表格,然后拼成这个表格就行了。
      

  10.   

    (用HTML画出来你要实现的表格)那是动态生成的,不是静态的。
      

  11.   

    我也想過這個問題,我覺得用datasouse來動態new一個 ,然後動態構造列
      

  12.   

    找到了兄弟
    給你一個例子
    CREATE TABLE Pivot
    ( Year      SMALLINT,
      Quarter   TINYINT, 
      Amount      DECIMAL(2,1) )
    GO
    INSERT INTO Pivot VALUES (1990, 1, 1.1)
    INSERT INTO Pivot VALUES (1990, 2, 1.2)
    INSERT INTO Pivot VALUES (1990, 3, 1.3)
    INSERT INTO Pivot VALUES (1990, 4, 1.4)
    INSERT INTO Pivot VALUES (1991, 1, 2.1)
    INSERT INTO Pivot VALUES (1991, 2, 2.2)
    INSERT INTO Pivot VALUES (1991, 3, 2.3)
    INSERT INTO Pivot VALUES (1991, 4, 2.4)SELECT Year, 
        SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1,
        SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2,
        SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3,
        SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4
    FROM Northwind.dbo.Pivot
    GROUP BY Year
      

  13.   

    SQL语句直接帮定出这样的效果很难建议先画好Table,然后依据行列的要求取数填充到Table中