有关ASP.NET如何实现报表,再者就是实现与EXECL数据的导入与导出。
如题:我用的是VS.2003,环境C#
希望高手们能说出不用水晶报表。如何来实现。
还有就是用水晶报表如何来实现!
当然还望高手们从头给个实现的逻辑!
------解决方案--------------------private void CreateExcel(DataSet ds,string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding( "Big5 ");
resp.AppendHeader( "Content-Disposition ", "attachment;filename= "+FileName);
resp.ContentType= "application/ms-excel ";
string colHeaders= " ", ls_item= " ";
int i=0;
//定义表对象与行对像,同時用DataSet对其值进行初始化
DataTable dt=ds.Tables[0];
DataRow[] myRow=dt.Select( " ");
//取得数据表各列标题,各标题之間以\t分割,最后一个列标题后加回车符
for(i=0;i <=dt.Columns.Count-1;i++)
{
if (i!=dt.Columns.Count-1)
colHeaders =dt.Columns[i].Caption.ToString()+ "\t ";
else
colHeaders =dt.Columns[i].Caption.ToString()+ "\n ";
//向HTTP输出流中写入取得的数据信息
resp.Write(colHeaders);
}
//逐行处理数据
for(i = 0; i < dt.Rows.Count; i++)
{
for(int j = 0; j < dt.Columns.Count; j++)
{
if (j!=dt.Columns.Count-1)
{
//比較長的數字,轉到Excel成科學計數法了,加 '把它變成字符
if (j==0)
ls_item = " ' "+dt.Rows[i][j].ToString()+ "\t ";
else
ls_item =dt.Rows[i][j].ToString()+ "\t ";
}
else
ls_item =dt.Rows[i][j].ToString()+ "\n ";
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
resp.Write(ls_item);
ls_item= " ";
}
}
//写缓冲区中的数据到HTTP头文件中
resp.End();
}
------解决方案--------------------自己用查一下相关的书,拖报表,不可能一步一步说吧
------解决方案--------------------可以用EXCEL表啊
------解决方案--------------------sqlserver2005也有提供了保表系统,可以提供实时和周期的报表服务,以webservice提供外部访问接口,比较复杂的计算可以考虑下
------解决方案--------------------友情UP
------解决方案--------------------友情UP
------解决方案--------------------用sql语句吧,在asp页面,先连接数据库,String sql= "查询语句 "
导入:
insert into table1
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0 ',
'Data Source= "c:\book1.xls ";User ID=Admin;Password=;Extended properties=Excel 5.0 ')...Sheet1$
导出:
EXEC master..xp_cmdshell 'bcp "select * from dbname..tablename " queryout c:\DT.xls -c -Sservername -Usa -Ppassword '
------解决方案--------------------asp.net报表的实现有一个办法,就是将生成的报表再生成PDF数据流,如果你安装了Acrobat Reader,就可以直接在IE里打开看到报表,而且此种方法是可以完全实现精确的格式的,并且客户端也可以是非windows平台的(如MAC OS X 或LINUX等),我没有在ASP.NET里用过水晶报表,不知其能否实现,曾看到FastReport studio可以导成PDF文件而后打开这个文件,但觉得不方便,JAVA里有一个是完全可以实现的,就是JasperReport与iReport组合使用,完全可以实现PDF报表生成并显示。如果你对C#与Delphi比较熟的话,有一个办法也可以实现,就是利用DELPHI里的FastReprot的功能,生成PDF数据流,再在C#里调用这个数据流,实现方法也就是C#调用DELPHI的DLL,我曾试过这个方法,是完全可行的,但由于对C#不是很熟,无法实现C#向DELPHI的DLL传递参数。
------解决方案--------------------在asp.net操作excel方面最好的解决方案是farpoint第三方控件.