AR在winform中导出excel文件格式问题
1.导出excel之后格式变得错乱,莫名多出行和列,并且单元格没有合并。2.报表导出到excel同一行数据超过页边导致本在同一页的数据分页显示。
3.同时导出矩表和饼状图到excel之后图形也会严重影响单元格间的排布。
以上问题还请帮忙定位解决,谢谢!附上我的例子
您好
我们的导出有两种方法一种就是您现在用的这种:filters的方法还有一种是 Rendering的方法
第一种方法由于是最先出的一个导出的方法可能有一定的局限性,最后我们又升级了一种办法也就是Rendering
我用Rendering方法进行测试问题解决
把button1_Click(object sender, EventArgs e)的代码修改为下面的代码:
System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"D:\MyExcel");
outputDirectory.Create();
// 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.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));
outputProvider.OverwriteOutputFile = true;
_document.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
KearneyKang 发表于 2017-8-23 12:33
您好
我们的导出有两种方法一种就是您现在用的这种:filters的方法还有一种是 Rendering的方法
第一种方 ...
单元格的问题解决了,但是一张连续的表导出来之后被分成了好几个sheet,并且左右超出的部分也被单独导出到不同的sheet中,这个要怎样处理呢? KearneyKang 发表于 2017-8-23 12:33
您好
我们的导出有两种方法一种就是您现在用的这种:filters的方法还有一种是 Rendering的方法
第一种方 ...
我的意思是假设创建的列太多,宽度超过了左右的范围,在RDL查看器中使用Galley Mode模式可以正常显示,但是导出Excel时仍然受宽度限制,超出的部分出现在下方而不是在右边完整显示,如图正常模式下显示:
Galley Mode下显示:
导出Excel结果:
如果是单独的报表导出的时候有一个Multisheet属性默认为true会进行一个自动的sheet分割,设置为false就不分割
如果是在代码中实现就可以通过代码设置该属性就可以了,具体代码如下:
private void button1_Click(object sender, EventArgs e)
{
// Create an output directory.
System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(@"D:\MyExcel");
outputDirectory.Create();
// 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.Xls;
<font color="#ff0000"> excelSetting.MultiSheet = false;</font>
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));
outputProvider.OverwriteOutputFile = false;
_document.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
}
KearneyKang 发表于 2017-8-23 14:02
如果是单独的报表导出的时候有一个Multisheet属性默认为true会进行一个自动的sheet分割,设置为false就不分 ...
我刚才补充了一下,分割sheet我已经找到了,但是重点是假如创建的列太多导致左右宽度超出,表格会被割开,虽然在同一个sheet中但是左右被割开分成上下排版,见我上面回复的图片,谢谢! 首先您要设置好您设计的报表的宽度,然后在正常情况下显示右侧不出现分页的情况,这样导出的时候就不会出现您说的情况了 KearneyKang 发表于 2017-8-23 14:41
首先您要设置好您设计的报表的宽度,然后在正常情况下显示右侧不出现分页的情况,这样导出的时候就不会出现 ...
这种做法不太合理吧?Excel不可能说会在列数上有限制啊,那您的意思也就是说ActiveReport不支持自定义的宽度?超出了就没有任何办法让其正常显示? KearneyKang 发表于 2017-8-23 14:41
首先您要设置好您设计的报表的宽度,然后在正常情况下显示右侧不出现分页的情况,这样导出的时候就不会出现 ...
好吧我自己已经找到解决办法了,谢谢! 本帖最后由 KearneyKang 于 2017-8-23 15:40 编辑
好的,祝您工作愉快
页:
[1]