|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般asp.net|excelDataTable中的数据导出Excel文件
///<summary>
///将DataTable中的数据导出到指定的Excel文件中
///</summary>
///<paramname="page">Web页面临象</param>
///<paramname="tab">包括被导出数据的DataTable工具</param>
///<paramname="FileName">Excel文件的称号</param>
publicstaticvoidExport(System.Web.UI.Pagepage,System.Data.DataTabletab,stringFileName)
{
System.Web.HttpResponsehttpResponse=page.Response;
System.Web.UI.WebControls.DataGriddataGrid=newSystem.Web.UI.WebControls.DataGrid();
dataGrid.DataSource=tab.DefaultView;
dataGrid.AllowPaging=false;
dataGrid.HeaderStyle.BackColor=System.Drawing.Color.Green;
dataGrid.HeaderStyle.HorizontalAlign=HorizontalAlign.Center;
dataGrid.HeaderStyle.Font.Bold=true;
dataGrid.DataBind();
httpResponse.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(FileName,System.Text.Encoding.UTF8));//filename="*.xls";
httpResponse.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
httpResponse.ContentType="application/ms-excel";
System.IO.StringWritertw=newSystem.IO.StringWriter();
System.Web.UI.HtmlTextWriterhw=newSystem.Web.UI.HtmlTextWriter(tw);
dataGrid.RenderControl(hw);
stringfilePath=page.Server.MapPath("..")+"Files"+FileName;
System.IO.StreamWritersw=System.IO.File.CreateText(filePath);
sw.Write(tw.ToString());
sw.Close();
DownFile(httpResponse,FileName,filePath);
httpResponse.End();
}
privatestaticboolDownFile(System.Web.HttpResponseResponse,stringfileName,stringfullPath)
{
try
{
Response.ContentType="application/octet-stream";
Response.AppendHeader("Content-Disposition","attachment;filename="+
HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8)+";charset=GB2312");
System.IO.FileStreamfs=System.IO.File.OpenRead(fullPath);
longfLen=fs.Length;
intsize=102400;//每100K同时下载数据
byte[]readData=newbyte[size];//指定缓冲区的巨细
if(size>fLen)size=Convert.ToInt32(fLen);
longfPos=0;
boolisEnd=false;
while(!isEnd)
{
if((fPos+size)>fLen)
{
size=Convert.ToInt32(fLen-fPos);
readData=newbyte[size];
isEnd=true;
}
fs.Read(readData,0,size);//读进一个紧缩块
Response.BinaryWrite(readData);
fPos+=size;
}
fs.Close();
System.IO.File.Delete(fullPath);
returntrue;
}
catch
{
returnfalse;
}
}
将指定Excel文件中的数据转换成DataTable
///<summary>
///将指定Excel文件中的数据转换成DataTable工具,供给用程序进一步处置
///</summary>
///<paramname="filePath"></param>
///<returns></returns>
publicstaticSystem.Data.DataTableImport(stringfilePath)
{
System.Data.DataTablers=newSystem.Data.DataTable();
boolcanOpen=false;
OleDbConnectionconn=newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"DataSource="+filePath+";"+
"ExtendedProperties="Excel8.0;"");
try//实验数据毗连是不是可用
{
conn.Open();
conn.Close();
canOpen=true;
}
catch{}
if(canOpen)
{
try//假如数据毗连能够翻开则实验读进数据
{
OleDbCommandmyOleDbCommand=newOleDbCommand("SELECT*FROM[Sheet1$]",conn);
OleDbDataAdaptermyData=newOleDbDataAdapter(myOleDbCommand);
myData.Fill(rs);
conn.Close();
}
catch//假如数据毗连能够翻开可是读进数据失利,则从文件中提掏出事情表的称号,再读进数据
{
stringsheetName=GetSheetName(filePath);
if(sheetName.Length>0)
{
OleDbCommandmyOleDbCommand=newOleDbCommand("SELECT*FROM["+sheetName+"$]",conn);
OleDbDataAdaptermyData=newOleDbDataAdapter(myOleDbCommand);
myData.Fill(rs);
conn.Close();
}
}
}
else
{
System.IO.StreamReadertmpStream=File.OpenText(filePath);
stringtmpStr=tmpStream.ReadToEnd();
tmpStream.Close();
rs=GetDataTableFromString(tmpStr);
tmpStr=&qu</p>使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。 |
|