为什么水晶报表能够导出rpt,word就是不能导出Excel呢
6个回答
2013-11-06
展开全部
网络上提到的方法 大概有以下:
1、如果你使用VS2005,可以使用RDLC报表,导出的Excel效果十分好。
2、可以考虑用文本框代替线。
3、
水晶报表自带的导出Excel不太完美,导出的文件没有网格线,要使它出现网格线就要自己写导出方法.要注意的一点是只有用强类型的水晶报表才可以写自定义的导出方法(个人意见)。方法步骤:
1, 创建个数据集
2, 在业务层创建水晶报表文件(强类型水晶报表就是把水晶报表放在项目里面,而不是网站里,这样在界面可以调用报表文件相关的方法)
3, 报表绑定:
在方法前面声明必要的参数
ReportDocument ReportDoc;
TableLogOnInfo logOnInfo;
DiskFileDestinationOptions FileOPS;
ExportOptions ExOPS;
CrystalReport1 cr = new CrystalReport1();
绑定代码:
DataSet1 ds = new DataSet1();
SqlConnection con = new SqlConnection("server=YWG;uid=sa;pwd=;database=jcjyzbxj");
SqlDataAdapter da = new SqlDataAdapter("SELECT DM,MC FROM DM_XB", con);
da.Fill(ds, "DM_XB");
cr.SetDataSource(ds);
CrystalReportViewer1.ReportSource = cr;
导出Excel代码:
调用Excel的方法:
protected void Button1_Click(object sender, EventArgs e)
{
DataSet1 ds = new DataSet1();
SqlConnection con = new SqlConnection("server=YWG;uid=sa;pwd=;database=jcjyzbxj");
SqlDataAdapter da = new SqlDataAdapter("SELECT DM,MC FROM DM_XB", con);
da.Fill(ds, "DM_XB");
cr.SetDataSource(ds);
CrystalReportViewer1.ReportSource = cr;
string ReportFile = Server.MapPath("CrystalReport1.rpt");
string ExcelFileName = "g:\\myExcel.xls";
bool msg= ExportToExcel(ReportFile, ds, ExcelFileName);
}
导出Excel的方法:
public bool ExportToExcel(string ReportFile, object ReportDataSource, string ExcelFileName)
{
try
{
ReportDoc = new ReportDocument();
logOnInfo = new TableLogOnInfo();
FileOPS = new DiskFileDestinationOptions();
cr.Load(ReportFile);
cr.SetDataSource(ReportDataSource);
FileOPS.DiskFileName = ExcelFileName;
ExOPS = cr.ExportOptions;
ExOPS.DestinationOptions = FileOPS;
ExOPS.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
ExOPS.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.ExcelRecord;
cr.Export();
System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;
Response.ClearContent();
Response.ClearHeaders();
//Response.ContentType = contentType;
//Response.WriteFile(ExcelFileName);
Response.Flush();
Response.Close();
return true;
}
catch
{
return false;
}
}
需要注意的地方:1在导出Excel以前一定要重新绑定一次数据,要不导出的文件没有数据
2导出Excel的文件类型要是ExcelRecord,不能是Excel否则一样没有网格线
还有看下软件有没有问题
1、如果你使用VS2005,可以使用RDLC报表,导出的Excel效果十分好。
2、可以考虑用文本框代替线。
3、
水晶报表自带的导出Excel不太完美,导出的文件没有网格线,要使它出现网格线就要自己写导出方法.要注意的一点是只有用强类型的水晶报表才可以写自定义的导出方法(个人意见)。方法步骤:
1, 创建个数据集
2, 在业务层创建水晶报表文件(强类型水晶报表就是把水晶报表放在项目里面,而不是网站里,这样在界面可以调用报表文件相关的方法)
3, 报表绑定:
在方法前面声明必要的参数
ReportDocument ReportDoc;
TableLogOnInfo logOnInfo;
DiskFileDestinationOptions FileOPS;
ExportOptions ExOPS;
CrystalReport1 cr = new CrystalReport1();
绑定代码:
DataSet1 ds = new DataSet1();
SqlConnection con = new SqlConnection("server=YWG;uid=sa;pwd=;database=jcjyzbxj");
SqlDataAdapter da = new SqlDataAdapter("SELECT DM,MC FROM DM_XB", con);
da.Fill(ds, "DM_XB");
cr.SetDataSource(ds);
CrystalReportViewer1.ReportSource = cr;
导出Excel代码:
调用Excel的方法:
protected void Button1_Click(object sender, EventArgs e)
{
DataSet1 ds = new DataSet1();
SqlConnection con = new SqlConnection("server=YWG;uid=sa;pwd=;database=jcjyzbxj");
SqlDataAdapter da = new SqlDataAdapter("SELECT DM,MC FROM DM_XB", con);
da.Fill(ds, "DM_XB");
cr.SetDataSource(ds);
CrystalReportViewer1.ReportSource = cr;
string ReportFile = Server.MapPath("CrystalReport1.rpt");
string ExcelFileName = "g:\\myExcel.xls";
bool msg= ExportToExcel(ReportFile, ds, ExcelFileName);
}
导出Excel的方法:
public bool ExportToExcel(string ReportFile, object ReportDataSource, string ExcelFileName)
{
try
{
ReportDoc = new ReportDocument();
logOnInfo = new TableLogOnInfo();
FileOPS = new DiskFileDestinationOptions();
cr.Load(ReportFile);
cr.SetDataSource(ReportDataSource);
FileOPS.DiskFileName = ExcelFileName;
ExOPS = cr.ExportOptions;
ExOPS.DestinationOptions = FileOPS;
ExOPS.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
ExOPS.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.ExcelRecord;
cr.Export();
System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;
Response.ClearContent();
Response.ClearHeaders();
//Response.ContentType = contentType;
//Response.WriteFile(ExcelFileName);
Response.Flush();
Response.Close();
return true;
}
catch
{
return false;
}
}
需要注意的地方:1在导出Excel以前一定要重新绑定一次数据,要不导出的文件没有数据
2导出Excel的文件类型要是ExcelRecord,不能是Excel否则一样没有网格线
还有看下软件有没有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
博思aippt
2024-07-20 广告
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
2013-11-06
展开全部
软件出现了问题吧!删掉现在用的软件(要彻底删除),重新安装下就OK了啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-06
展开全部
估计是中毒了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
该机有无升级IE我遇到过一次是因为升级ie
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
该机有无升级IE我遇到过一次是因为升级ie
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询