找回密码
 立即注册

QQ登录

只需一步,快速开始

KinnSoft

高级会员

108

主题

494

帖子

1999

积分

高级会员

积分
1999

活字格认证微信认证勋章元老葡萄

KinnSoft
高级会员   /  发表于:2017-11-14 16:48  /   查看:5852  /  回复:18

我打印报表预览后是2页,但是导出EXCEL之后,第一页和第二页没有连接上,并且最后一列错位了
请求帮忙看下,文件在附件中,谢谢。


本帖子中包含更多资源

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

x

18 个回复

倒序浏览
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-11-14 17:54:50
沙发
您好!您的意思是预览的时候正常,但是导出Excel后就出现错乱是吧!
如果是这样,请问您的报表是Winform形式还是Webviewer形式。如果是Winform的话,您换这种导出办法试试。
  1. GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport();GrapeCity.ActiveReports.Document.PageDocument reportDocument = new GrapeCity.ActiveReports.Document.PageDocument(report);

  2. // Create an output directory.
  3. System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyExcel");
  4. outputDirectory.Create();

  5. // Provide settings for your rendering output.
  6. GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
  7. excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
  8. GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;

  9. // Set the rendering extension and render the report.
  10. GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension excelRenderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
  11. GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));

  12. // Overwrite output file if it already exists.
  13. outputProvider.OverwriteOutputFile = true;

  14. reportDocument.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
复制代码
如果是webViewer的形式,您把能反映您问题的代码发过来我给看看具体是什么问题
回复 使用道具 举报
KinnSoft
高级会员   /  发表于:2017-11-15 10:12:18
板凳
  1. /// <summary>
  2.         /// 获取excel文件数据流
  3.         /// </summary>
  4.         /// <param name="excelType">excel类型,xls或者xlsx</param>
  5.         /// <returns>返回excel文件数据流</returns>
  6.         private MemoryStream GetExcleMemoryStream(string excelType,Boolean excelmethod=false)
  7.         {
  8.             Boolean newexeclmethod = excelmethod;
  9.             if (this.reportType == "rpx")
  10.                 newexeclmethod = false;

  11.             MemoryStream excelMemoryStream = new MemoryStream();

  12.             if (!newexeclmethod)
  13.             {
  14.                 GrapeCity.ActiveReports.Export.Excel.Section.XlsExport XlsExport = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();
  15.                 XlsExport.UseCellMerging = true;
  16.                 #region excel类型
  17.                 if (excelType == "XLS")
  18.                 {
  19.                     XlsExport.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xls97Plus;
  20.                 }
  21.                 else
  22.                 {
  23.                     XlsExport.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx;

  24.                 }
  25.                 #endregion

  26.             #region 导出数据流
  27.             if (this.ReportType == "rpx")
  28.             {
  29.                 SectionReport sectionReport = (SectionReport)this.ReportViewer;
  30.                 sectionReport.Run();
  31.                 XlsExport.Export(sectionReport.Document, excelMemoryStream);
  32.                 //转为文件的方法为pdfExport.Export(sectionReport.Document, 地址路径);
  33.             }
  34.             else
  35.             {
  36.                 PageReport pagereport = (PageReport)this.ReportViewer;
  37.                 //GrapeCity.ActiveReports.Document.PageDocument pageDocument = new GrapeCity.ActiveReports.Document.PageDocument(pagereport);
  38.                 //XlsExport.Export(pageDocument, excelMemoryStream);
  39.                 XlsExport.Export(pagereport.Document, excelMemoryStream);
  40.                 }
  41.                 #endregion
  42.             }
  43.             else
  44.             {
  45.                 PageReport pagereport = (PageReport)this.ReportViewer;                                             
  46.                 //GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(pagereport);
  47.                 GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = pagereport.Document;
  48.                 GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings XlsExport = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
  49.                 #region excel类型
  50.                 if (excelType == "XLS")
  51.                 {
  52.                     XlsExport.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
  53.                 }
  54.                 else
  55.                 {
  56.                     XlsExport.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xlsx;

  57.                 }
  58.                 #endregion
  59.                 XlsExport.MultiSheet = false;
  60.                 GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = XlsExport;

  61.                 GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension excelRenderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
  62.                 GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
  63.                
  64.                 _reportRuntime.Render(excelRenderingExtension, outputProvider, XlsExport.GetSettings());               
  65.                 outputProvider.GetPrimaryStream().OpenStream().CopyTo(excelMemoryStream);               
  66.             }
  67.             return excelMemoryStream;
  68.         }
复制代码
这边是转换成EXCEL的代码段 麻烦帮忙看下谢谢
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-11-15 14:41:33
地板
要不您最好把可以重现您问题的demo发过来,我这边给看看。看您发的这段代码,看起来好像没错。用的也是我发给您的导出Excel的方法
回复 使用道具 举报
KinnSoft
高级会员   /  发表于:2017-11-15 15:21:48
5#
这边没法做demo 我用EXCEL 把数据导给你行吗?
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-11-15 15:56:46
6#
可以的!您把数据和报表模板发过来。我这边做个验证,看看会不会出现您反馈的问题。还有记得备注说明AR的版本
回复 使用道具 举报
KinnSoft
高级会员   /  发表于:2017-11-15 16:02:08
7#
AR 10
模板在一楼有 这边是数据

本帖子中包含更多资源

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

x
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-11-16 10:24:24
9#
您好!您现在遇到的问题是,当预览的结果为多页时,导出的Excel就出现分页的情况。这种问题的出现,主要是由于导出Excel时的一个属性的设置,在系统的默认情况下它的属性默认为true,然后导出的结果就会随着预览的结果进行分页。
具体设置如下:
如果直接在报表上设计器上预览,设置如下:

后台代码:
  1. System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"D:\MyExcel");
  2.             outputDirectory.Create();
  3.          
  4.             GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
  5.             excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
  6. <b>            excelSetting.MultiSheet = false;</b>
  7.             GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;

  8.             GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension excelRenderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();

  9.             GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));
  10.             outputProvider.OverwriteOutputFile = false;

  11.             _document.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
复制代码


本帖子中包含更多资源

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

x
回复 使用道具 举报
KinnSoft
高级会员   /  发表于:2017-11-16 11:09:40
10#
我原来代码就已经设置过了不允许多页打印了,但是还是这样
回复 使用道具 举报
KinnSoft
高级会员   /  发表于:2017-11-16 11:36:43
11#
还有我怀疑是合并单元格的问题打印的时候,行会自动合并



但是有时候不会,是不是这边的原因,因为最后一列也是自动合并的

本帖子中包含更多资源

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

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