Asp.Net下导出/导入规则的Excel(.xls)文件
2008-08-09 22:04
531 查看
Asp.Net下导出/导入规则的Excel(.xls)文件。 DataTable中的数据导出Excel文件
/// <summary>
/// 将DataTable中的数据导出到指定的Excel文件中
/// </summary>
/// <param name="page">Web页面对象</param>
/// <param name="tab">包含被导出数据的DataTable对象</param>
/// <param name="FileName">Excel文件的名称</param>
public static void Export(System.Web.UI.Page page,System.Data.DataTable tab,string FileName)
{
System.Web.HttpResponse httpResponse = page.Response;
System.Web.UI.WebControls.DataGrid dataGrid=new System.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.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HTMLTextWriter hw = new System.Web.UI.HTMLTextWriter (tw);
dataGrid.RenderControl(hw);
string filePath = page.Server.MapPath("..")+"\\Files\\" +FileName;
System.IO.StreamWriter sw = System.IO.File.CreateText(filePath);
sw.Write(tw.ToString());
sw.Close();
DownFile(httpResponse,FileName,filePath);
httpResponse.End();
}
private static bool DownFile(System.Web.HttpResponse Response,string fileName,string fullPath)
{
try
{
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition","attachment;filename=" +
HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8) + ";charset=GB2312");
System.IO.FileStream fs= System.IO.File.OpenRead(fullPath);
long fLen=fs.Length;
int size=102400;//每100K同时下载数据
byte[] readData = new byte[size];//指定缓冲区的大小
if(size>fLen)size=Convert.ToInt32(fLen);
long fPos=0;
bool isEnd=false;
while (!isEnd)
{
if((fPos+size)>fLen)
{
size=Convert.ToInt32(fLen-fPos);
readData = new byte[size];
isEnd=true;
}
fs.Read(readData, 0, size);//读入一个压缩块
Response.BinaryWrite(readData);
fPos+=size;
}
fs.Close();
System.IO.File.Delete(fullPath);
return true;
}
catch
{
return false;
}
}
将指定Excel文件中的数据转换成DataTable
/// <summary>
/// 将指定Excel文件中的数据转换成DataTable对象,供应用程序进一步处理
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public static System.Data.DataTable Import(string filePath)
{
System.Data.DataTable rs = new System.Data.DataTable();
bool canOpen=false;
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source=" + filePath + ";" +
"Extended Properties=\"Excel
/// <summary>
/// 将DataTable中的数据导出到指定的Excel文件中
/// </summary>
/// <param name="page">Web页面对象</param>
/// <param name="tab">包含被导出数据的DataTable对象</param>
/// <param name="FileName">Excel文件的名称</param>
public static void Export(System.Web.UI.Page page,System.Data.DataTable tab,string FileName)
{
System.Web.HttpResponse httpResponse = page.Response;
System.Web.UI.WebControls.DataGrid dataGrid=new System.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.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HTMLTextWriter hw = new System.Web.UI.HTMLTextWriter (tw);
dataGrid.RenderControl(hw);
string filePath = page.Server.MapPath("..")+"\\Files\\" +FileName;
System.IO.StreamWriter sw = System.IO.File.CreateText(filePath);
sw.Write(tw.ToString());
sw.Close();
DownFile(httpResponse,FileName,filePath);
httpResponse.End();
}
private static bool DownFile(System.Web.HttpResponse Response,string fileName,string fullPath)
{
try
{
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition","attachment;filename=" +
HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8) + ";charset=GB2312");
System.IO.FileStream fs= System.IO.File.OpenRead(fullPath);
long fLen=fs.Length;
int size=102400;//每100K同时下载数据
byte[] readData = new byte[size];//指定缓冲区的大小
if(size>fLen)size=Convert.ToInt32(fLen);
long fPos=0;
bool isEnd=false;
while (!isEnd)
{
if((fPos+size)>fLen)
{
size=Convert.ToInt32(fLen-fPos);
readData = new byte[size];
isEnd=true;
}
fs.Read(readData, 0, size);//读入一个压缩块
Response.BinaryWrite(readData);
fPos+=size;
}
fs.Close();
System.IO.File.Delete(fullPath);
return true;
}
catch
{
return false;
}
}
将指定Excel文件中的数据转换成DataTable
/// <summary>
/// 将指定Excel文件中的数据转换成DataTable对象,供应用程序进一步处理
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public static System.Data.DataTable Import(string filePath)
{
System.Data.DataTable rs = new System.Data.DataTable();
bool canOpen=false;
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source=" + filePath + ";" +
"Extended Properties=\"Excel
相关文章推荐
- Asp.Net下导出/导入规则的Excel(.xls)文件
- [转]Asp.Net下导出/导入规则的Excel(.xls)文件
- Asp.Net下导出/导入规则的Excel(.xls)文件
- asp.net导出/导入规则的Excel(.xls)文件
- Asp.Net下导出/导入规则的Excel(.xls)文档
- ASP.NET中导入和导出标准Excel文件(转)
- (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
- ASP.NET中导入和导出标准Excel文件(转)
- asp.net 导出excel(xls)文件 资料 --- 之一: xml文件格式导出
- [导入]Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- asp.net 生成导出word表单 ,导出excel; dataTable生成xls文件,返回前台下载;asp.net启动excel错误 80070005;excel-xls columnName 不能改变; 读写excel的开源利器NPOI; 设置excel Cell的数据类型;
- [导入]ASP.NET 2.0中将 GridView 导出到 Excel 文件中
- ASP.NET导出Excel,打开Excel文件时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致”
- ASP.NET 导入导出原始规格的 Excel 文件
- ASP.NET中导入和导出标准Excel文件
- asp.net中通过html格式导出excel文件
- Asp.NET导出Excel文件乱码解决若干方法 (转)
- Asp.Net MVC 使用FileResult导出Excel数据文件
- Asp.Net MVC 使用FileResult导出Excel数据文件
- Asp.net程序中用NPOI生成标准Excel报表,导入导出一应俱全[转]