使用crystal report(ExportFormatType.ExcelRecord)在导出DATA时仅动态设置列宽,以便在c#中出色

时间:2013-07-09 08:55:07

标签: c# visual-studio-2008 crystal-reports export-to-excel

我正在使用以下代码

// Declare variables and get the export options.
ExportOptions exportOpts = new ExportOptions();
ExcelFormatOptions excelFormatOpts = new ExcelFormatOptions();
DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions();
exportOpts = rpt.ExportOptions;

// Set the excel format options.
excelFormatOpts.ExcelConstantColumnWidth = 100;
excelFormatOpts.ExcelUseConstantColumnWidth = true;
exportOpts.ExportFormatType = ExportFormatType.ExcelRecord;
exportOpts.FormatOptions = excelFormatOpts;

// Set the disk file options and export.
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile;
diskOpts.DiskFileName = strFilename;
exportOpts.DestinationOptions = diskOpts;

rpt.Export();

我正确地将数据导出到excel而不进行格式化。

问题:现在我需要格式化。我想在excel中设置列宽。

我可以这样做吗?

从上面的代码中,下面的行似乎不起作用

excelFormatOpts.ExcelConstantColumnWidth = 100;
excelFormatOpts.ExcelUseConstantColumnWidth = true;

我很欣赏这方面的任何帮助,因为这个问题正在耗费我的时间。

2 个答案:

答案 0 :(得分:0)

我假设您有一个带有名称表的Excel工作表对象。

esheet.Cells.Style.EntireColumn.AutoFit();

试试这个。

答案 1 :(得分:0)

我在你的代码中看到了两个问题。

  1. 使用ExportFormatType.ExcelRecord,您应该使用ExcelDataOnlyFormatOptions类,而不是ExcelFormatOptions。 ExcelFormatOptions对应于ExportFormatType.Excel

  2. C#版本中的ExcelConstantColumnWidth是缇,100是非常小的值。你应该乘以20。

  3. 我设法获得ExportFormatType.Excel案例的代码,但不是ExportFormatType.ExcelRecord。 ExcelDataOnlyFormatOptions的其他属性有效,但ExcelConstantColumnWidth仍不适用于我。