找回密码
 立即注册

QQ登录

只需一步,快速开始

西安风展软件
金牌服务用户   /  发表于:2015-10-12 15:27  /   查看:7099  /  回复:13
如题:

13 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-10-12 16:45:00
沙发
您好,

AR能够导出excel的格式,导出方式和导出PDF的方式类似。我记得咱们之前沟通过导出PDF的方式。

导出excel参考代码:
  1.             string report = "rptInvoice";
  2.             // Provide the page report you want to render.
  3.             GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("~/Reports/" + report + ".rdlx")));
  4.             _reportDef.Report.DataSources[0].DataSourceReference = "";
  5.             _reportDef.Report.DataSources[0].ConnectionProperties.DataProvider = "OLEDB";
  6.             _reportDef.Report.DataSources[0].ConnectionProperties.ConnectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", Server.MapPath("~/Data/NWind_CHS.mdb"));
  7.             GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
  8.             // Create an output directory
  9.             System.IO.MemoryStream ms = new System.IO.MemoryStream();
  10.             // Provide settings for your rendering output.
  11.             GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings
  12.             excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
  13.             excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
  14.             GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;
  15.             //Set the rendering extension and render the report.
  16.             GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension
  17.             excelRenderingExtension = new
  18.             GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
  19.             GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
  20.             _reportRuntime.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
  21.             Response.ContentType = "application/vnd.ms-excel";
  22.             Response.AddHeader("content-disposition", "inline;filename=客户订单.xls");
  23.             outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms);
  24.             Response.BinaryWrite(ms.ToArray());
  25.             Response.End();
复制代码
回复 使用道具 举报
西安风展软件
金牌服务用户   /  发表于:2015-10-13 10:43:00
板凳

请问导出按钮在哪里设置。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-10-13 10:59:00
地板
您好,
根据电话沟通的结果,这个问题可能是Response.ContentType导致的。
从截图上看,这应该是一个PDF格式的默认插件打开的形式。

您可以看下导出的文件格式,以及二进制流是否正确。
回复 使用道具 举报
西安风展软件
金牌服务用户   /  发表于:2015-10-13 11:07:00
5#
我在生成Excel 的时候 给了三个参数,请问,参数怎么带进去 。好比我如果生成报表的时候,会根据不同的参数,查询不同的数据,然后产生报表,这个EXCEL也是一样的,该怎么实现
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-10-13 11:12:00
6#
回复 5楼西安风展软件的帖子

您好,

在初始化报表之后
  1. GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("~/Reports/" + report + ".rdlx")));
复制代码


可以给报表添加参数:
  1. _reportDef.Report.ReportParameters[0].DefaultValue.Values.Add(参数);
复制代码


需要说明的是,如果这个参数是后台生成的,直接在后台生成就可以了。
如果是前台页面上,用户选择的需要传递到后台,才能处理。
回复 使用道具 举报
西安风展软件
金牌服务用户   /  发表于:2015-10-13 11:31:00
7#
基本成功了, 但是还有个问题,为什么我导出来的EXCEL 没有后缀名,而且导出来的文件,名字是我的页面名字 ,
回复 使用道具 举报
西安风展软件
金牌服务用户   /  发表于:2015-10-13 11:31:00
8#
GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension
                    excelRenderingExtension = new
                    GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
                    GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
                    _reportRuntime.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
                    Response.ContentType = "application/vnd.ms-excel";
                    Response.AddHeader("content-disposition", "inline;filename=公路绿化节点情况统计表.xls");   【这句话不是已经定义了导出的文件名吗】
                    outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms);
                    Response.BinaryWrite(ms.ToArray());
                    Response.End();
回复 使用道具 举报
西安风展软件
金牌服务用户   /  发表于:2015-10-13 14:25:00
9#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using H1_Users.BLL;

namespace H1_Users.Lcgl
{
    public partial class LVH_StartView : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    LoginCheck lc = new LoginCheck(this.Page);//登录身份验证类
                    //string file_name = "/Report/公路绿化节点情况统计表.rdlx";
                    string startdate = Request.QueryString["startdate"];
                    if (startdate == "" || startdate==null)
                    {
                        startdate = "2000-1-1";
                    }
                    string enddate = Request.QueryString["enddate"];
                    if (enddate == "" || enddate == null)
                    {
                        enddate = DateTime.Now.ToString();
                    }
                    string report = "公路绿化节点情况统计表";
                    // 提供你想要的页的报告呈现.
                    GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("/Report/" + report + ".rdlx")));
                    _reportDef.Report.ReportParameters[0].DefaultValue.Values.Add(lc.Get_UnitID().ToString());
                    _reportDef.Report.ReportParameters[1].DefaultValue.Values.Add(DateTime.Now.ToString("yyyy年MM月dd日"));
                    _reportDef.Report.ReportParameters[2].DefaultValue.Values.Add(startdate);
                    _reportDef.Report.ReportParameters[3].DefaultValue.Values.Add(enddate);
                    _reportDef.Report.ReportParameters[4].DefaultValue.Values.Add(lc.Get_UnitNameLong());
                    _reportDef.Report.ReportParameters[5].DefaultValue.Values.Add(lc.Get_UserName());
                    GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
                    // 创建一个输出目录
                    System.IO.MemoryStream ms = new System.IO.MemoryStream();
                    // 提供设置渲染输出.
                    GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings
                    excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
                    excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
                    GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;
                    //设置渲染扩展和渲染.
                    GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension
                    excelRenderingExtension = new
                    GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
                    GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
                    _reportRuntime.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
                    Response.ContentType = "application/vnd.ms-excel";
                    Response.AddHeader("content-disposition", "inline;filename=公路绿化节点情况统计表.xls");
                    outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms);
                    Response.BinaryWrite(ms.ToArray());
                    Response.End();
                }
            }
            catch
            {
            }

        }
    }
}
这是所有代码
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-10-13 14:45:00
10#
您好,

我使用一个ASP的程序进行测试,通过修改filename可以修改导出的文件名称
所以怀疑是Response在其它的地方被修改了。




说明,Button6是新加的专门用于这个问题导出测试的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部