Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自devexpress的网格控件列的自动宽度问题_C#_Excel_Grid_Devexpress - Fatal编程技术网

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

C# 来自devexpress的网格控件列的自动宽度问题,c#,excel,grid,devexpress,C#,Excel,Grid,Devexpress,我正在桌面应用程序(C#)中使用来自devexpress的网格控件。 我设置了一个数据源,然后导出到Excel。我希望我的所有列都采用该列中最长行值的宽度。 在这个网格中,我使用不同的数据源 在加载形式I集合中: gvExport.OptionsPrint.AutoWidth = false; gvExport.BestFitColumns(); grdExport.DataSource = ds; XlsExportOptions vOptions = new XlsExportOption

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

在加载形式I集合中:

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可以是列表或数据表

1.有人能帮我自动调整列的长度吗

2.如何将生成的Excel页面设置为ladscape


感谢您回答问题的第一部分

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);

注意:对于其他人,有
XlsxExportOptions
PdfExportOptions
RtfExportOptions
…等您应该知道
BestFitColumns()
方法会在数据源的行上迭代,以计算列的最佳宽度

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

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

对于导出到横向模式,您可能会找到一个答案