繁体   English   中英

来自devexpress的网格控件列的自动宽度问题

[英]problems with autowidth for columns of a grid control from devexpress

我在桌面应用程序(C#)中使用来自devexpress的网格控件。 我设置了一个数据源然后导出到Excel。我希望我的所有列都采用该列中最长行值的宽度。 在这个网格中,我使用不同的数据源。

在加载形式我设置:

gvExport.OptionsPrint.AutoWidth = false;
gvExport.BestFitColumns();
grdExport.DataSource = ds;

XlsExportOptions vOptions = new XlsExportOptions();
vOptions.TextExportMode = TextExportMode.Text;
vOptions.ShowGridLines = true;
vOptions.SheetName = "Test";

prmFileName = "Test.xls";

grdExport.ExportToXls(prmFileName, vOptions);

我的ds可以是列表或dataTable。

1.有人可以帮我自动调整列的长度吗?

2.如何设置ladscape我生成的Excel页面?

谢谢

对于问题的第一部分,您可以使用

GridView.OptionsView.ColumnAutoWidth = true

如果要根据特定列设置宽度,请说明必须在第一列中使用GridView,然后覆盖函数BestFitColumn和OnColumnWidthChanged。

对于第二部分,您必须使用如下打印系统:

        PrintableComponentLink link = new PrintableComponentLink(new PrintingSystem());
        link.PaperKind = System.Drawing.Printing.PaperKind.A4;
        link.Component = myGridControl;
        link.Landscape = true;

然后使用ExportOption,这里是Xls的一个例子:

 XlsExportOptions _Options1 = new XlsExportOptions();
 _Options1.SheetName = fileName;
 _Options1.ExportMode = XlsExportMode.SingleFile;
 link.ExportToXls(sfd.FileName, _Options1);

注意其他人有XlsxExportOptionsPdfExportOptionsRtfExportOptions

Tou应该知道BestFitColumns()方法迭代数据源的行以计算列的最佳宽度。

因此,您必须在设置数据源后进行设置。

因此,我建议您不要使用此方法并手动设置列的宽度。 实际上, BestFitColumns()方法会大大减慢网格的加载速度(如果要处理> 1k行)。

对于导出到横向模式,您可能会在此处找到答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM