找回密码
 立即注册

QQ登录

只需一步,快速开始

grape_puppet

中级会员

35

主题

112

帖子

829

积分

中级会员

积分
829

[已处理] 导出excel问题

grape_puppet
中级会员   /  发表于:2016-4-26 08:32  /   查看:2898  /  回复:9
本帖最后由 Lenka.Guo 于 2016-4-26 14:26 编辑

导出excel时,如果有数据换行,在excel中就会跨单元格显示,怎么让数据在一个单元格中展示?

本帖子中包含更多资源

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

x

9 个回复

倒序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-26 09:35:14
沙发
本帖最后由 Lenka.Guo 于 2016-4-26 09:37 编辑

您好,
我使用ActiveReports 10 SP1 版本 导出RDL 报表为Excel  xls 和 xlsx 格式,都没有出现 您说的问题。您使用的是哪种类型的报表?
报表预览:





导出xls




导出Xlsx


导出文件和报表模板:












本帖子中包含更多资源

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

x
回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-4-26 09:59:14
板凳
Lenka.Guo 发表于 2016-4-26 09:35
您好,
我使用ActiveReports 10 SP1 版本 导出RDL 报表为Excel  xls 和 xlsx 格式,都没有出现 您说的问题 ...

ar9,rdl报表
回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-4-26 10:06:44
地板
Lenka.Guo 发表于 2016-4-26 09:35
您好,
我使用ActiveReports 10 SP1 版本 导出RDL 报表为Excel  xls 和 xlsx 格式,都没有出现 您说的问题 ...

你用ar9试一下可以吗
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-26 10:11:00
5#

已在AR9中测试,还是没能重现您的问题。 报表模板使用RDL 报表 和Table控件。
还得麻烦您上传报表模板,我在这边测试,帮您调整下。



回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-4-26 10:52:41
6#

  1. protected void btnExcel_Click(object sender, EventArgs e)
  2.     {
  3.         GrapeCity.ActiveReports.Export.Excel.Section.XlsExport XlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();
  4.         System.IO.MemoryStream ms = new System.IO.MemoryStream();
  5.         XlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx;

  6.         GenerateReport();//加载模板和数据源
  7.         XlsExport1.Export(report.Document, ms);
  8.         Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
  9.         Response.AddHeader("content-disposition", Server.UrlPathEncode("attachment;filename=MyExport.xlsx"));
  10.         Response.BinaryWrite(ms.ToArray());
  11.         Response.End();
  12.     }
复制代码
这是导出按钮的实现,附件是模板,看看是否有问题。

本帖子中包含更多资源

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

x
回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-4-26 10:56:11
7#
Lenka.Guo 发表于 2016-4-26 10:11
已在AR9中测试,还是没能重现您的问题。 报表模板使用RDL 报表 和Table控件。
还得麻烦您上传报表模板, ...

模板在楼上。
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-26 14:25:35
8#
本帖最后由 Lenka.Guo 于 2016-4-26 15:29 编辑
grape_puppet 发表于 2016-4-26 10:52
这是导出按钮的实现,附件是模板,看看是否有问题。

您好,

问题已经重现,是Excel 导出代码问题,
在将Rdl报表导出为Excel文件时,如果采用 GrapeCity.ActiveReports.Export.Excel.Section.XlsExport XlsExport1 会导致多行的问题。建议您将导出代码更换为以下:


  1. // 创建报表对象
  2. GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(@"C:\Sample_PageReport.rdlx"));
  3. GrapeCity.ActiveReports.Document.PageDocument reportDocument = new GrapeCity.ActiveReports.Document.PageDocument(report);

  4. //创建输出目录
  5. System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyExcel");
  6. outputDirectory.Create();

  7. // 导出Excel文件设置
  8. GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
  9. excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
  10. GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;

  11. //设置渲染方式
  12. GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension excelRenderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
  13. GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));
复制代码
  1. //导出
  2. reportDocument.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
复制代码








回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-4-26 15:19:29
9#
Lenka.Guo 发表于 2016-4-26 14:25
您好,

问题已经重现,是Excel 导出代码问题,

这个代码好像不是是完整的,能否给一下完整的导出代码;另外,这个方法的导出路径是写死的,能否改成我原来的那种,手动选择下载路径。
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-4-26 16:10:25
10#
grape_puppet 发表于 2016-4-26 15:19
这个代码好像不是是完整的,能否给一下完整的导出代码;另外,这个方法的导出路径是写死的,能否改成我原 ...

抱歉编辑时失误,代码已经完整。

手动选择路径之后,将路径存为变量,传给 System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyExcel"); 就可以了。

评分

参与人数 1满意度 +5 收起 理由
grape_puppet + 5 解决了,赞一个!

查看全部评分

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