autowidth对devexpress网格控件列的问题

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

在我设置的加载forms中:

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。

有人能让我自动化长度的列吗?

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

谢谢

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

 GridView.OptionsView.ColumnAutoWidth = true 

如果你想根据一个特定的列设置宽度,比如说第一列你必须embeddedGridView,然后覆盖函数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()方法在数据源的行上迭代计算列的最佳宽度。

所以,你必须在设置你的数据源之后进行设置。

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

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