日期:2014-05-19  浏览次数:20736 次

高手请看—水晶报表的问题
1,最近遇到一个问题,将水晶报表直接转换为Excel,格式上会变的不整齐,不知道这个问题可以怎样解决;
      2,如果上面的问题不能直接编程解决,那我就想直接将数据按报表的格式导入到Excel中,如果这样的话因该要做一个Excel模版,而且代码应该也是硬编码了吧。
      有人能提供类似的解决方案,或提供简单的源码例子。

------解决方案--------------------
/// <summary>
/// 以流的形式向客户端输出
/// </summary>
/// <param name= "dt "> 实体集 </param>
public void CreatExcel(System.Data.DataTable dt)
{

StringWriter sw = new StringWriter();
string rowStr = " ";
//取所有列名
for (int i = 0; i < dt.Columns.Count; i++)
{
rowStr = rowStr + dt.Columns[i] + "\t ";
}

sw.WriteLine(rowStr);
//取每行数据
for (int j = 0; j < dt.Rows.Count; j++)
{
rowStr = " ";
for (int i = 0; i < dt.Columns.Count; i++)
{

rowStr = rowStr + dt.Rows[j][i].ToString() + "\t ";

}
sw.WriteLine(rowStr);
}
sw.Close();
string filename = DateTime.Now.ToString( "yyyyMMddhhmmss ") + username;
Response.AddHeader( "Content-Disposition ", "attachment;filename= " + filename + ".xls ");
Response.ContentType = "application/ms-excel ";
Response.ContentEncoding = Encoding.GetEncoding( "GB2312 ");
Response.Write(sw);
Response.End();
}

以附件的形式提供下载Excel...传入的为Excel的数据源
------解决方案--------------------
crystalreportview10上面有个功能条,可以导出到EXCEL

如果格式不好看,1。用vba SavaAs();2。用.net DataGrid导出

------解决方案--------------------
用C#引用com,写vba,msdn里很多例子。