|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。asp.net|excel|导出excel1、由dataset天生
publicvoidCreateExcel(DataSetds,stringtypeid,stringFileName)
{
HttpResponseresp;
resp=Page.Response;
resp.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition","attachment;filename="+FileName);
stringcolHeaders="",ls_item="";
inti=0;
//界说表工具与行对像,同时用DataSet对其值举行初始化
DataTabledt=ds.Tables[0];
DataRow[]myRow=dt.Select("");
//typeid=="1"时导出为EXCEL格局文件;typeid=="2"时导出为XML格局文件
if(typeid=="1")
{
//获得数据表各列题目,各题目之间以 支解,最初一个列题目后加回车符
for(i=0;icolHeaders+=dt.Columns[i].Caption.ToString()+" ";
colHeaders+=dt.Columns[i].Caption.ToString()+"
";
//向HTTP输入流中写进获得的数据信息
resp.Write(colHeaders);
//逐行处置数据
foreach(DataRowrowinmyRow)
{
//在以后行中,逐列取得数据,数据之间以 支解,停止时加回车符
for(i=0;ils_item+=row[i].ToString()+" ";
ls_item+=row[i].ToString()+"
";
//以后行数据写进HTTP输入流,而且置空ls_item以便下行数据
resp.Write(ls_item);
ls_item="";
}
}
else
{
if(typeid=="2")
{
//从DataSet中间接导出XML数据而且写到HTTP输入流中
resp.Write(ds.GetXml());
}
}
//写缓冲区中的数据到HTTP头文件中
resp.End();
}
2、利用微软的C++写的ACTIVEX控件:http://download.microsoft.com/download/OfficeXPDev/sample/1.0/WIN98MeXP/EN-US/Dsoframerctl.exe
3、由datagrid天生:
publicvoidToExcel(System.Web.UI.Controlctl)
{
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");
HttpContext.Current.Response.Charset="UTF-8";
HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType="application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
ctl.Page.EnableViewState=false;
System.IO.StringWritertw=newSystem.IO.StringWriter();
System.Web.UI.HtmlTextWriterhw=newSystem.Web.UI.HtmlTextWriter(tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
用法:ToExcel(datagrid1);
4、这个用dataview,代码好长
publicvoidOutputExcel(DataViewdv,stringstr)
{
//
//TODO:在此处增加机关函数逻辑
//
//dv为要输入到Excel的数据,str为题目称号
GC.Collect();
Applicationexcel;//=newApplication();
introwIndex=4;
intcolIndex=1;
_WorkbookxBk;
_WorksheetxSt;
excel=newApplicationClass();
xBk=excel.Workbooks.Add(true);
xSt=(_Worksheet)xBk.ActiveSheet;
//
//获得题目
//
foreach(DataColumncolindv.Table.Columns)
{
colIndex++;
excel.Cells[4,colIndex]=col.ColumnName;
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).HorizontalAlignment=XlVAlign.xlVAlignCenter;//设置题目格局为居中对齐
}
//
//获得表格中的数据
//
foreach(DataRowViewrowindv)
{
rowIndex++;
colIndex=1;
foreach(DataColumncolindv.Table.Columns)
{
colIndex++;
if(col.DataType==System.Type.GetType("System.DateTime"))
{
excel.Cells[rowIndex,colIndex]=(Convert.ToDateTime(row[col.ColumnName].ToString())).ToString("yyyy-MM-dd");
xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment=XlVAlign.xlVAlignCenter;//设置日期型的字段格局为居中对齐
}
else
if(col.DataType==System.Type.GetType("System.String"))
{
excel.Cells[rowIndex,colIndex]=""+row[col.ColumnName].ToString();
xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment=XlVAlign.xlVAlignCenter;//设置字符型的字段格局为居中对齐
}
else
{
excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
}
}
}
//
//加载一个算计行
//
introwSum=rowIndex+1;
intcolSum=2;
excel.Cells[rowSum,2]="算计";
xSt.get_</p>只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天 |
|