devexpress中网格控件的列的autowidth问题

本文关键字:问题 autowidth 控件 中网 网格 devexpress | 更新日期: 2023-09-27 18:24:16

我正在桌面应用程序(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.如何设置我生成的Excel页面的梯形图?

感谢

devexpress中网格控件的列的autowidth问题

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

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。。。etc

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

因此,您必须将其置于设置数据源之后。

因此,我建议您不要使用此方法,而是手动设置列的宽度。事实上,BestFitColumns()方法大大降低了网格的加载速度(如果要处理>1k行)。

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