[英]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);
注意其他人有XlsxExportOptions
, PdfExportOptions
, RtfExportOptions
等
Tou應該知道BestFitColumns()
方法迭代數據源的行以計算列的最佳寬度。
因此,您必須在設置數據源后進行設置。
因此,我建議您不要使用此方法並手動設置列的寬度。 實際上, BestFitColumns()
方法會大大減慢網格的加載速度(如果要處理> 1k行)。
對於導出到橫向模式,您可能會在此處找到答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.