KinnSoft 发表于 2015-5-20 14:03:00

AR report导出Excel

你好,请看附件。
       在Textbox,如果我没有设置borderstyle=solid. 那么导出Excel时,数据是一行一行导出的, 是对的;
                        但是如果设置borderstyle=solid,那么导出到Excel时,数据导出就会出现多行的情况。
      
      我现在要的效果是如下:
             在打印预览时,可以出现边框,但是导出到Excel时,可以是一行一行显示的.

frank.zhang 发表于 2015-5-20 14:33:00

您好,
我怀疑是边框没有对齐的原因,您这个表的数据没有给我。我改了一个模板,您试下。


KinnSoft 发表于 2015-5-20 18:00:00

不行,请看图片:
            

frank.zhang 发表于 2015-5-20 18:15:00

您好,
我建议导出的格式为xlsx。xls的格式有点老,有的特性不支持。

KinnSoft 发表于 2015-5-20 18:34:00

能把你导出xlsx的代码给我吗, 因为我们我们导出xlsx会报错
      

frank.zhang 发表于 2015-5-21 10:24:00

您好,
代码如下:
      protected void Button4_Click(object sender, EventArgs e)
      {
            string report = "UAFL_Test";
            // Provide the page report you want to render.
            GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("/Reports/" + report + ".rdlx")));
            //_reportDef.Report.DataSources.DataSourceReference = "";
            //_reportDef.Report.DataSources.ConnectionProperties.DataProvider = "OLEDB";
            //_reportDef.Report.DataSources.ConnectionProperties.ConnectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", Server.MapPath("/Data/NWind_CHS.mdb"));

            GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);

            // Create an output directory
            System.IO.MemoryStream ms = new System.IO.MemoryStream();

            // Provide settings for your rendering output.
            GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings
            excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
            excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xlsx;
            excelSetting.MultiSheet = false;
            GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;

            //Set the rendering extension and render the report.
            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=客户订单.xlsx");
            outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms);
            Response.BinaryWrite(ms.ToArray());
            Response.End();
      }

KinnSoft 发表于 2015-5-21 18:11:00

这个导出报错, 提示没有outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms);我在另一个帖子回了。

frank.zhang 发表于 2015-5-22 13:37:00

您好,
经过电话沟通,您可以在我之前给您的例子中,先增加这个功能,再添加到您的项目中。这样可以避免收到程序其它功能的影响,有助于定位问题。

KinnSoft 发表于 2015-5-29 12:07:00

回复 6楼frank.zhang的帖子

      用你给的例子,在Ar9.0上不能用,见图
      

KinnSoft 发表于 2015-5-29 14:21:00

回复 9楼KinnSoft的帖子

      这个可以了, 我引用了Excel.dll 就ok了。
页: [1] 2
查看完整版本: AR report导出Excel