哈默船舶 发表于 2016-3-19 20:20:27

EXCEL生成问题

本帖最后由 Lenka.Guo 于 2016-3-21 11:33 编辑

你好,我有个问题需解决下:
报表生成的EXECEL文件如下图:Lifeboat列、Exit time列和Hours列的每个单元格占用了execel的多个竖列。怎么才能让Lifeboat列只占用execel的单个竖列,就像First Name列那样。


下面是生成的代码:
ExcelTransformationDevice RenderingExtension = new ExcelTransformationDevice();

         Settings settings = new Settings();

         string filePath = exportSaveFileDialog.FileName;
         StreamProvider StreamProvider = new FileStreamProvider(new DirectoryInfo(Path.GetDirectoryName(filePath)), Path.GetFileNameWithoutExtension(filePath));
         this.arvMain.Render(RenderingExtension, StreamProvider, settings.GetSettings());




Lenka.Guo 发表于 2016-3-21 11:33:11

这个是由于单元格内容过多导致的:
可尝试设置单元格的 ShrinkToFit 属性 设为True

哈默船舶 发表于 2016-3-27 20:25:25

哪里设置,代码还是EXCEL文档里,能不能说具体点?最好有截图?

Lenka.Guo 发表于 2016-3-28 09:19:33

哈默船舶 发表于 2016-3-27 20:25
哪里设置,代码还是EXCEL文档里,能不能说具体点?最好有截图?

抱歉,在上面的回答没有说清楚;
我理解您的是,您是先设计报表模板, 然后根据报表模板生成Excel文件。
如果是这样,所以您可以在设计报表模板时,选中报表的单元格,在属性窗口中,设置ShrinkToFit 属性为True;


哈默船舶 发表于 2016-3-30 14:49:53

我已经把单元格的 ShrinkToFit 属性 设为True了,如果把报表的标题去掉没有问题,但是加上报表的标题问题又出现了。如下图是去掉标题后的报表,这个没有问题。


下图是加上标题后的报表,问题有出现了,怎么解决?









Lenka.Guo 发表于 2016-3-31 12:07:50

抱歉回复晚了,
经过测试,在导出Excel是某一列数据会在Excel占用多列,是因为报表标题中包含TextBox,且TextBox的width与Table的width不一致;在导出时,处理器会自动将多个Excel列单元格合并来显示数据;
所以为了避免此问题,建议将标题放在表头行,在表格中选中表头,插入行:


报表模板如附件:






页: [1]
查看完整版本: EXCEL生成问题