100分求水晶报表导出word或pdf的例子

lovefeel 2005-03-03 01:29:57
如题!
...全文
283 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nytony 2005-04-14
  • 打赏
  • 举报
回复
gz
DoSomethingForYou 2005-04-13
  • 打赏
  • 举报
回复
楼上的,你那个好像只是生成文件还没打开文件呢,哈哈
thinker700 2005-04-13
  • 打赏
  • 举报
回复
给你个函数吧,得给分,
Private Sub ExPortReport(ByVal Report As ReportClass, ByVal OptionStr As String)
Dim ExportPath As String
ExportPath = Request.PhysicalApplicationPath + "Exported\\"
If Directory.Exists(ExportPath) = False Then
Directory.CreateDirectory(Request.PhysicalApplicationPath + "Exported\\")
End If
Dim crReportDocument As ReportDocument = Report
Dim crDiskFileDestinationOptions As DiskFileDestinationOptions = New DiskFileDestinationOptions
Dim crExportOptions As ExportOptions = crReportDocument.ExportOptions
Select Case OptionStr
Case "Portable Document (PDF)"
crDiskFileDestinationOptions.DiskFileName = ExportPath + "PortableDoc.pdf"
crExportOptions.DestinationOptions = crDiskFileDestinationOptions
crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat
Case "MS Word (DOC)"
crDiskFileDestinationOptions.DiskFileName = ExportPath + "Word.doc"
crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
crExportOptions.ExportFormatType = ExportFormatType.WordForWindows
crExportOptions.DestinationOptions = crDiskFileDestinationOptions
End Select


Try
crReportDocument.Export()
crReportDocument.Close()
Response.ClearContent()
Response.ClearHeaders()
Select Case OptionStr
Case "Portable Document (PDF)"
Response.ContentType = "application/pdf"
Response.WriteFile(ExportPath + "PortableDoc.pdf")
Case "MS Word (DOC)"
Response.ContentType = "application/msword"
Response.WriteFile(ExportPath + "Word.doc")
End Select
Response.Flush()
Response.Close()
Catch ex As Exception
Response.Write("<BR>")
Response.Write(ex.Message.ToString())
End Try

End Sub
bguest 2005-04-08
  • 打赏
  • 举报
回复
ExportToStream的方法:
//---------------------------------------------------------------------------------
CrystalDecisions.CrystalReports.Engine.ReportDocument crReport=new ReportDocument();
string fileName="crReport2";
//---------------------------------------------------------------------------------
private void btnSaveExcel_Click(object sender, System.EventArgs e)
{
ExportOptions myExp = new ExportOptions();
if(DDLExportType.SelectedItem.Value==".doc"){
myExp.ExportFormatType = ExportFormatType.WordForWindows; //Word格式
}
else if(DDLExportType.SelectedItem.Value==".pdf"){
myExp.ExportFormatType = ExportFormatType.PortableDocFormat; //Pdf格式
}
else if(this.DDLExportType.SelectedItem.Value==".xls"){
myExp.ExportFormatType=ExportFormatType.Excel;
}

ExportRequestContext myExpReq = new ExportRequestContext();
myExpReq.ExportInfo = myExp;

Stream myReportStream;
myReportStream = crReport.FormatEngine.ExportToStream(myExpReq);
Response.ClearHeaders();
Response.ClearContent();
if(DDLExportType.SelectedItem.Value==".doc"){
Response.ContentType = "application/msword";
Response.AddHeader("Content-disposition","attachment; filename=" + fileName + ".doc");
}
else if(DDLExportType.SelectedItem.Value==".pdf"){
Response.ContentType = "application/pdf";
Response.AddHeader("Content-disposition","attachment; filename=" + fileName + ".pdf");
}
else if(DDLExportType.SelectedItem.Value==".xsl"){
Response.ContentType = "application/msxls";
Response.AddHeader("Content-disposition","attachment; filename=" + fileName + ".xls")
}
byte[] myReportByte = new byte[myReportStream.Length];
myReportStream.Read( myReportByte,0,(int)myReportStream.Length);
Response.BinaryWrite(myReportByte );
Response.Flush();
Response.End();
}
dayasky 2005-03-05
  • 打赏
  • 举报
回复
建议去下一个比vs.studio自带的版本高些的水晶报表
自带有导出功能,在生成的报表头上会自动有导出的按钮可以用
lovefeel 2005-03-03
  • 打赏
  • 举报
回复
谢谢大家,不是还有一个不用在磁盘生成文件的方法,是 ExportToStream什么的,可以指教吗
xiaomaoxia 2005-03-03
  • 打赏
  • 举报
回复
水晶报表10企业版不是自己带有导出功能吗?可以导出成很多种格式!!
landlordh 2005-03-03
  • 打赏
  • 举报
回复
eg.

Dim dry As New CrystalReport1
dry.SetDataSource(DataSet1)
dry.ExportToDisk(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat, "d:\123.pdf")
hwzyj001 2005-03-03
  • 打赏
  • 举报
回复
其实很简单:
FileName = "D:\****"
MyRpt.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
MyRpt.ExportToDisk(ExportFormatType.Excel, FileName) '在此设置导出类型,此为excel.

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧