找回密码
 立即注册

QQ登录

只需一步,快速开始

calihone

注册会员

6

主题

11

帖子

192

积分

注册会员

积分
192
calihone
注册会员   /  发表于:2018-3-9 17:19  /   查看:3497  /  回复:7
问题如题,由于ActiveReport报表中view工具栏是无法增添新的工具,如何在其中新增两个按钮并实现将报表导出到excel和word?

7 个回复

倒序浏览
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-3-13 10:44:03
推荐
不好意思!粘贴错了。汗
  1. // Provide the page report you want to render.
  2. GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport();
  3. GrapeCity.ActiveReports.Document.PageDocument reportDocument = new GrapeCity.ActiveReports.Document.PageDocument(report);

  4. // Create an output directory.
  5. System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyWord");
  6. outputDirectory.Create();

  7. // Provide settings for your rendering output.
  8. GrapeCity.ActiveReports.Export.Word.Page.Settings wordSetting = new GrapeCity.ActiveReports.Export.Word.Page.Settings();

  9. // Set the FileFormat property to .OOXML.
  10. wordSetting.FileFormat = GrapeCity.ActiveReports.Export.Word.Page.FileFormat.OOXML;

  11. // Set the rendering extension and render the report.
  12. GrapeCity.ActiveReports.Export.Word.Page.WordRenderingExtension wordRenderingExtension = new GrapeCity.ActiveReports.Export.Word.Page.WordRenderingExtension();
  13. GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));

  14. // Overwrite output file if it already exists.
  15. outputProvider.OverwriteOutputFile = true;

  16. reportDocument.Render(wordRenderingExtension, outputProvider, wordSetting);   
复制代码


回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-3-9 17:29:21
板凳
您好!
导出按钮是可以通过自定义进行编写的,效果图

具体可以参考如下博客:
http://blog.gcpowertools.com.cn/post/WinForm-Export.aspx

本帖子中包含更多资源

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

x
回复 使用道具 举报
calihone
注册会员   /  发表于:2018-3-12 13:52:59
地板
KearneyKang 发表于 2018-3-9 17:29
您好!
导出按钮是可以通过自定义进行编写的,效果图

功能实现了,不过个人建议如果能有个图形化设计界面就更好了,另外这个designer最好不要在里面写入代码,不然界面只要有些许改动或者编译就会导致它自动生成新的文件,原来增加的代码会消失。给出的参考链接中,第二种导出excel没有路径,没有测试出来,第一种方式是好用的,但是希望使用自己可随意选择的文件夹目录,如果在文件夹下选择某个XXX.xls进行覆盖后,就会出现问题,如果不覆盖,生成一个不存在的文件时,它会在该选择目录下生成一个和文件名相同的目录,这个问题如何解决?
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-3-13 09:31:03
4#
您好!
winform导出添加按钮目前就是这种办法。然后导出Excel的文件的路径就是在该路径:
  1.   System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"D:\MyExcel");
复制代码
我给您的demo导出和打印我测试都是可以正常运行的,只不过导出的Excel 文件在这个文件下D:\MyExcel

本帖子中包含更多资源

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

x
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-3-13 10:25:51
5#
您好!
这是导出Word的主要的实现代码
  1. // Provide the page report you want to render.
  2. GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport();GrapeCity.ActiveReports.Document.PageDocument reportDocument = new GrapeCity.ActiveReports.Document.PageDocument(report);

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

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

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

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

  15. reportDocument.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
复制代码


回复 使用道具 举报
calihone
注册会员   /  发表于:2018-3-13 10:57:28
24#
KearneyKang 发表于 2018-3-13 10:44
不好意思!粘贴错了。汗

不好意思刚才回复提交半天没反应就多次点击了,然后响应了之后就一下子重复提交了。这个word所在的程序集名称是什么呀?我找了没找到,我看名称应该是GrapeCity.ActiveReports.Export.Rdf.v12程序集,但是这个包含进去也是不行的,请告诉我确切包含的程序集名称,谢谢
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-3-13 15:12:28
25#
本帖最后由 KearneyKang 于 2018-3-27 17:53 编辑

您好,所有的引用地址如下:
C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 12
您说的应该是这个:



本帖子中包含更多资源

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

x

评分

参与人数 1满意度 +5 收起 理由
calihone + 5 很给力!

查看全部评分

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