导出excel问题
本帖最后由 Lenka.Guo 于 2016-4-26 14:26 编辑导出excel时,如果有数据换行,在excel中就会跨单元格显示,怎么让数据在一个单元格中展示?
本帖最后由 Lenka.Guo 于 2016-4-26 09:37 编辑
您好,
我使用ActiveReports 10 SP1 版本 导出RDL 报表为Excelxls 和 xlsx 格式,都没有出现 您说的问题。您使用的是哪种类型的报表?
报表预览:
导出xls
导出Xlsx
导出文件和报表模板:
Lenka.Guo 发表于 2016-4-26 09:35
您好,
我使用ActiveReports 10 SP1 版本 导出RDL 报表为Excelxls 和 xlsx 格式,都没有出现 您说的问题 ...
ar9,rdl报表 Lenka.Guo 发表于 2016-4-26 09:35
您好,
我使用ActiveReports 10 SP1 版本 导出RDL 报表为Excelxls 和 xlsx 格式,都没有出现 您说的问题 ...
你用ar9试一下可以吗 grape_puppet 发表于 2016-4-26 09:59
ar9,rdl报表
已在AR9中测试,还是没能重现您的问题。 报表模板使用RDL 报表 和Table控件。
还得麻烦您上传报表模板,我在这边测试,帮您调整下。
protected void btnExcel_Click(object sender, EventArgs e)
{
GrapeCity.ActiveReports.Export.Excel.Section.XlsExport XlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
XlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx;
GenerateReport();//加载模板和数据源
XlsExport1.Export(report.Document, ms);
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", Server.UrlPathEncode("attachment;filename=MyExport.xlsx"));
Response.BinaryWrite(ms.ToArray());
Response.End();
}这是导出按钮的实现,附件是模板,看看是否有问题。
Lenka.Guo 发表于 2016-4-26 10:11
已在AR9中测试,还是没能重现您的问题。 报表模板使用RDL 报表 和Table控件。
还得麻烦您上传报表模板, ...
模板在楼上。 本帖最后由 Lenka.Guo 于 2016-4-26 15:29 编辑
grape_puppet 发表于 2016-4-26 10:52
这是导出按钮的实现,附件是模板,看看是否有问题。
您好,
问题已经重现,是Excel 导出代码问题,
在将Rdl报表导出为Excel文件时,如果采用 GrapeCity.ActiveReports.Export.Excel.Section.XlsExport XlsExport1 会导致多行的问题。建议您将导出代码更换为以下:
// 创建报表对象
GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(@"C:\Sample_PageReport.rdlx"));
GrapeCity.ActiveReports.Document.PageDocument reportDocument = new GrapeCity.ActiveReports.Document.PageDocument(report);
//创建输出目录
System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyExcel");
outputDirectory.Create();
// 导出Excel文件设置
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.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(outputDirectory.Name));
//导出
reportDocument.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
Lenka.Guo 发表于 2016-4-26 14:25
您好,
问题已经重现,是Excel 导出代码问题,
这个代码好像不是是完整的,能否给一下完整的导出代码;另外,这个方法的导出路径是写死的,能否改成我原来的那种,手动选择下载路径。 grape_puppet 发表于 2016-4-26 15:19
这个代码好像不是是完整的,能否给一下完整的导出代码;另外,这个方法的导出路径是写死的,能否改成我原 ...
抱歉编辑时失误,代码已经完整。
手动选择路径之后,将路径存为变量,传给 System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"C:\MyExcel"); 就可以了。
页:
[1]