解决方案 »

  1.   

    生成表格的时候,ROWSPAN ,COLSPAN
      

  2.   

    select的时候,order by 性别,年龄,身高,体重,相同的就都挨着了
    然后循环一下处理就行了
    话说,你求总的锻炼次数和时长,这没什么意义
      

  3.   

    百度一下“DataGridView合并单元格” 或者用报表也可以实现,设置下合并相同内容单元格就可以了
      

  4.   

    Quote: 引用 5 楼 Z65443344 的回复:

    学过什么叫"加权平均数"吗?
    人家本来就是个平均数,而不是3个个人
    你把平均数这样直接相加,根本是完全无意义的行为
    好比江苏平均锻炼1次,每次1小时,统计了30000个人得出的结论
    而云南平均锻炼2次,1小时,只统计了3个人
    你把30000个人的平均值跟3个人的平均值相加,最后是要除以2吗??[/quote
    大神,原表不是这个,我只是那这个做个案例,方法是一样的
    见笑了。
      

  5.   

    具体怎么循环处理呢
    按行循环,再按列循环,双重for循环
    先判断这一行和上一行是否相同,相同就做累加
    不相同就将上面相同的几行合并单元格,并把累计数量清空
      

  6.   

    npoi  这个组件生成Excel很强,里面应该有合并单元格的方法
      

  7.   

    第一种效果: 看你输出Excel用的是什么方法或者插件,然后合并单元格就行了第二种效果: 检索的sql用 group by rollup,就可以有小计行了
      

  8.   

    一个老的思路:
    1.先用excel设置布局,布局里需要赋值的地方记得弄成标签比如说{0},{2};
    2.将上一步的另存为html;
    3.后台代码获取值之后,替换掉标签内容。
      

  9.   

    当然,你也可以再后台自己去定义excel表格,可以自己控制列的合并居中什么的,有了这个模板,就可以往里面添数据,最后再response输出。
      

  10.   

    数据库中可以用sql直接实现,sqlserver或者oracle中都有相关的函数,mysql中不懂
    给你我的笔记参考
    create table MeterialInfo
    (
    id int identity(1,1),
    MeterialName varchar(50),
    InStoreDate datetime,
    Weight decimal(18,3),
    Re varchar(200)
    )select 100*RAND()insert into MeterialInfo values ('AAAAA',GETDATE(),100*RAND(),NEWID())
    waitfor delay '00:00:01:01'
    insert into MeterialInfo values ('BBBBB',GETDATE(),100*RAND(),NEWID())
    waitfor delay '00:00:01:01'
    insert into MeterialInfo values ('AAAAA',GETDATE(),100*RAND(),NEWID())
    waitfor delay '00:00:01:01'
    insert into MeterialInfo values ('BBBBB',GETDATE(),100*RAND(),NEWID())select 
    CASE WHEN GROUPING(MeterialName) = 1 
    THEN 'ALL' ELSE MeterialName END 
    AS MeterialName,
    SUM(Weight) from MeterialInfo
    group by MeterialName  WITH CUBE --MeterialName (无列名)
    --AAAAA         217.411
    --BBBBB         274.565
    --ALL               491.976
    select 
    CASE WHEN GROUPING(MeterialName) = 1 
    THEN 'ALL' ELSE MeterialName END 
    AS MeterialName,InStoreDate,
    SUM(Weight) from MeterialInfo
    group by MeterialName ,InStoreDate  WITH ROLLUPMeterialName InStoreDate (无列名)
    AAAAA 2012-12-12 11:16:43.957 76.909
    AAAAA 2012-12-12 11:16:45.957 60.072
    AAAAA 2012-12-12 11:16:47.707 53.246
    AAAAA 2012-12-12 11:16:49.707 27.184
    AAAAA 2012-12-12 11:32:53.433 89.429
    AAAAA 2012-12-12 11:32:53.620 21.208
    AAAAA 2012-12-12 11:32:53.637 90.963
    AAAAA NULL                   419.011
    BBBBB 2012-12-12 11:16:44.957 68.751
    BBBBB 2012-12-12 11:16:46.957 33.855
    BBBBB 2012-12-12 11:16:48.707 77.566
    BBBBB 2012-12-12 11:16:50.720 94.393
    BBBBB 2012-12-12 11:32:53.433 96.330
    BBBBB 2012-12-12 11:32:53.620 72.308
    BBBBB 2012-12-12 11:32:53.637 43.261
    BBBBB NULL                   486.464
    ALL NULL                   905.475
      

  11.   


    使用rdlc,用分组把数据分好,然后直接导出Excel就有这种格式,如下图:
      

  12.   

    不参加EXCEL培训班,看来是一时半会儿难掌握的,哪里有培训班呢?
      

  13.   

    额,我做的都是读出数据然后自己写到表格中,我用的sourcegrid,效果还不错。