需求:
水晶报表中已经自带了打印和导出功能,但是有时候我们想不用打开报表就直接使用导出功能时还是需要自己写一下的。
开发:
try
{
// 1.创建ReportDocument对象并加载.rpt文件
ReportDocument reportDocument = new ReportDocument();
string reportPath = AppDomain.CurrentDomain.BaseDirectory + @"\Report\Auditory_Understand.rpt";// rpt报表的绝对路径
reportDocument.Load(reportPath);
// 2.设置数据源
DataSet dataSet = GetDataSet(int.Parse(mySelected.Row["ID"].ToString()));
reportDocument.SetDataSource(dataSet);
// 3. 设置导出格式和路径
SaveFileDialog sfd = new SaveFileDialog
{//WPF中使用SaveFileDialog需要引用using Microsoft.Win32;
AddExtension = true,
CheckPathExists = true,
CreatePrompt = false,
DefaultExt = "doc",
Filter = "DOC files (*.doc)|*.doc|All files (*.*)|*.*"
};
bool? result = sfd.ShowDialog();
if (result == true)
{
//4. 执行导出
reportDocument.ExportToDisk(ExportFormatType.WordForWindows, sfd.FileName);
}
// 3.设置导出路径
//string outPathStr = AppDomain.CurrentDomain.BaseDirectory + @"Log\789.pdf";
//DiskFileDestinationOptions diskFileDestinationOptions = new DiskFileDestinationOptions
//{
// DiskFileName = outPathStr
//};
// 4. 执行导出
//ExportOptions exportOptions = new ExportOptions
//{
// ExportFormatType = ExportFormatType.WordForWindows,
// ExportDestinationOptions = diskFileDestinationOptions,
// ExportDestinationType = ExportDestinationType.DiskFile
//};
//reportDocument.Export(exportOptions);
// 5. 清理资源
reportDocument.Close();
reportDocument.Dispose();
}
catch (Exception ex)
{
UserMessagebox.XMessageBox.Error(ex.Message.ToString(), "导出Word文档出错");
}
Export和ExportToDisk区别
ExportToDisk
功能描述:
ExportToDisk是Crystal Reports报表导出功能中的一个具体方法。
它允许用户将报表以指定的格式导出到磁盘上的文件中。使用场景:
当需要将报表数据保存为特定格式的文件(如PDF、Excel等)并存储在磁盘上时,使用ExportToDisk方法非常方便。方法参数:
ExportToDisk方法通常需要两个参数:一个是导出格式类型(如PDF、Excel等),另一个是导出的文件名和路径。返回值:
该方法通常不返回任何值,而是直接将报表数据写入到指定的文件中。
Export
功能描述:
Export是一个更通用的术语,它可以指代将数据从一种格式或系统导出到另一种格式或系统的过程。
在Crystal Reports中,Export方法是一个更灵活、更强大的导出功能,它允许用户通过ExportOptions对象来指定导出格式、目标位置和其他导出选项。使用场景:
Export方法适用于需要将报表数据导出到多种不同格式或目标位置的情况。
它还允许用户进行更复杂的导出配置,如设置导出时的文件名、路径、是否作为附件导出等。方法参数:
Export方法通常需要一个参数,即ExportOptions对象。这个对象包含了导出所需的所有配置信息。返回值:
根据具体的实现和配置,Export方法可能返回不同的值。在某些情况下,它可能返回一个表示导出数据的流(Stream)对象;在其他情况下,它可能直接执行导出操作而不返回任何值。
总结
- ExportToDisk:是Crystal Reports中的一个具体方法,用于将报表数据以指定格式导出到磁盘上的文件中。它简单易用,适用于基本的导出需求。
- Export:是一个更通用、更灵活的术语,在Crystal Reports中通过Export方法和ExportOptions对象来实现。它允许用户进行更复杂的导出配置,适用于需要将报表数据导出到多种不同格式或目标位置的情况。