| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 539 人关注过本帖
标题:高手赐教报表问题!
只看楼主 加入收藏
Alohal
Rank: 2
等 级:论坛游民
帖 子:14
专家分:22
注 册:2010-7-28
结帖率:0
收藏
 问题点数:0 回复次数:8 
高手赐教报表问题!
    目前在做一个预算系统,需要生成一大堆的报表,刚注册进来,不知道怎么插图片,没办法看到更直观的效果,我描述一下吧,报表列固定,但是行需要从数据库中动态读取,并且有的列是通过计算得到的,总共有多少行,是根据数据库记录动态增加的。里面类似的报表有好几张,并且每张都是成百上千行,而且还想导出成Excel,请问高手这种动态生成的报表用什么方式比较好实现?我刚注册,没分啊,这个问题困扰我好几天了,高手们同情我一下啊.
搜索更多相关主题的帖子: 数据库 Excel 图片 
2010-07-28 10:54
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
既然还想导出excel,就直接用excel做报表咯。
也就是将数据取出来,再写到excel中就可以了。你只需一个事先定义好的excel模块就行。

飘过~~
2010-07-28 11:24
Alohal
Rank: 2
等 级:论坛游民
帖 子:14
专家分:22
注 册:2010-7-28
收藏
得分:0 
回复 2楼 bygg
谢谢了啊,看了些你回复的帖子,你很厉害!它那个报表里面个别列类似于合并单元格之类的,但是这些合并的东西也是从数据库里面读出来的,我想问一下,如果用Excel做模板块好弄吗?这方面我也不是很懂!
2010-07-28 11:35
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
如果这个报表只是看,而没有后续修改的话,其实有个很简单的办法,就是把html代码直接写到excel中,不信你试试,想怎么控制都行,(*^__^*) 嘻嘻……这是个偷懒的办法

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-07-28 11:45
Alohal
Rank: 2
等 级:论坛游民
帖 子:14
专家分:22
注 册:2010-7-28
收藏
得分:0 
回复 2楼 bygg
还想再详细描述一下:它本身就是个Excel,但是现在做成了一个网站,对那些基础数据管理,然后自动生成预算结果汇总,对方想在网站页面上看到跟EXCEL格式一样的效果,而且还想导出成Excel以供打印。
2010-07-28 11:49
Alohal
Rank: 2
等 级:论坛游民
帖 子:14
专家分:22
注 册:2010-7-28
收藏
得分:0 
回复 4楼 冰镇柠檬汁儿
呵呵,关键就在于不知道.aspx页面上怎么处理跟Excel的交互啊。
2010-07-28 11:52
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
用excel做比较好弄。当然最方便还是写成csv文件,嘿嘿。不过csv文件没有格式,不用看,打印什么的还得自己调整一下。
所以用excel比较方便,你就在页面上放个按钮,叫“导出报表”什么的,后台代码就是将页面上的统计数据写到excel中就可以了。而且你的excel是模板,所以,你自己也知道什么数据该写在什么位置。

下面给你一个删除EXCEL的小代码,呵呵,其他的修改,添加什么的都差不多,希望对你有用。
代码很简单,如同不懂的,直接自己调试一次就明白了。
程序代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using Microsoft.Office.Interop.Excel;
using System.Reflection;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Microsoft.Office.Interop.Excel.Application exc;
        Workbooks workbooks;
        Sheets sheets = null;
        _Workbook workbook;
        exc = new Microsoft.Office.Interop.Excel.Application();
        workbooks = exc.Workbooks;

        try
        {
            exc.Visible = false;
            exc.DisplayAlerts = false;
            exc.Interactive = false;
            DateTime beforeTime = DateTime.Now;
            string modePath = @"e:\a.xls";
            string outputPath = @"e:\b.xls";
            workbook = exc.Workbooks.Open(modePath, Missing.Value, Missing.Value,
                Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                Missing.Value, Missing.Value, Missing.Value, Missing.Value);
            sheets = workbook.Worksheets;

            _Worksheet worksheet = (_Worksheet)sheets[1];
            worksheet.Activate();

            Microsoft.Office.Interop.Excel.Range m_objRange = ((Microsoft.Office.Interop.Excel.Range)worksheet.Columns[12,Missing.Value]);
            //m_objRange.ColumnWidth = 1;
            m_objRange.EntireColumn.Delete(Microsoft.Office.Interop.Excel.XlDirection.xlToLeft);

            workbook.SaveAs(outputPath, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, null, null, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, null, null, null, null, null);
            workbook.Saved = true;

            Response.Write("OK");
        }
        catch (Exception exp)
        {
            Response.Write(exp.ToString());
        }
        finally
        {  //关闭和excel相关的东西
            workbooks.Close();
            exc.Quit();
            workbooks = null;
            workbook = null;
            exc = null;
        }
    }
}


飘过~~
2010-07-28 12:02
Alohal
Rank: 2
等 级:论坛游民
帖 子:14
专家分:22
注 册:2010-7-28
收藏
得分:0 
回复 7楼 bygg
谢谢了啊,我仔细琢磨琢磨你那代码,我要有你那么厉害就好了!嘿嘿!
2010-07-28 13:08
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
谈不上厉害,多做点东西,就明白了。

飘过~~
2010-07-28 13:26
快速回复:高手赐教报表问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027771 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved