您的位置:首页 > 编程语言 > ASP

asp.net读取Excel数据

2014-10-09 22:35 387 查看
先通过控件FileUpload获取excel文件路径

protected void btnReadExcelFromFileUpload_Click(object sender, EventArgs e)
{
if (fupExcel.PostedFile.ContentLength > 0)
{
//获取全路径
string fullFileName = fupExcel.PostedFile.FileName.ToString();
//获取文件名
string fileName = fupExcel.FileName.ToString();
//获取文件类型
string type = fileName.Substring(fileName.LastIndexOf(".") + 1);
//获取上传路径
string path = Server.MapPath("UploadFile\\")+fileName;
Response.Write(path);
//文件大小
FileInfo file = new FileInfo(fullFileName);
float size=(file.Length/1024)/1024;
if (type != "xls")
{
Response.Write("<script language='javascript'>alert('不是Excel文件!')</script>");
}
else
{
//   fupExcel.PostedFile.SaveAs(path);//上传到服务器
DataSet ds = ImportExcel(fullFileName);
gvFirst.DataSource = ds;
gvFirst.DataBind();
}

}
}


读取excel文件里的数据到DataSet里

/// <summary>
/// 读取Excel数据到DataSet
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
public static DataSet ImportExcel(string filename)
{
try
{
//文件路径
string ExcelName = filename;
//HDR=YES  有两个值:YES/NO,表示第一行是否字段名,默认是YES,第一行是字段名
/*
IMEX有三个值0,1,2,其他两个值分别表示什么
当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。
当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
详见:http://www.cnblogs.com/goto/archive/2012/04/12/2443670.html
*/
string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";//连接excel文件的字符串
if (ExcelName == null)
{
return null;
}
OleDbConnection odcon = new OleDbConnection(strcon);//建立连接
odcon.Open();//打开连接
System.Data.DataTable sTable = odcon.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//Sheets Name
string tableName = sTable.Rows[0][2].ToString().Trim();
if (tableName == "")
{
return null;
}
else
{
tableName = "[" + tableName + "]";
}
OleDbDataAdapter odda = new OleDbDataAdapter("select * from " + tableName, odcon);
DataSet ds = new DataSet();
try
{
odda.Fill(ds);
}
catch (Exception ex)
{
throw ex;
}
finally
{
odcon.Close();
}
return ds;
}
catch (Exception ex)
{
return null;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: