将Excel文件中的数据导入GridView
2012-02-15 20:36
393 查看
在Asp.net中怎样将Excel文件中的数据导入到GridView中呢?下面我来为大家说说这个详细的过程。Excel文件就是一张数据表,当然我们可以把它看作一个数据源了。
首先我们将这张表中的数据转换为DataTable类型的数据源,做一个函数来解决这个问题:
private DataTable createDataSource(string strPath)
{
stringstrCon;
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=" + strPath + ";Extended Properties=Excel 8.0";
OleDbConnectioncon = new OleDbConnection(strCon);
OleDbDataAdapterda = new OleDbDataAdapter("select * from [Sheet1$]", con);
DataTabledt = new DataTable();
da.Fill(dt);
returndt;
}
只需要传入Excel文件的路径即可。
其次我们就是利用这个可以函数了。要想将客户端的Excel文件显示到客户端的GridView控件当中,这次都是客户端的东西,在我们的服务器端代码是无法做到的。所以我们必须把这个Excel文件暂时的保存到服务器,我们读取服务器端的文件才可以实现这样的功能。看下面的实现代码:
protected void Button1_Click(objectsender, EventArgs e)
{
//检查文件是否存在
if(FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
{
Page.ClientScript.RegisterStartupScript(Page.GetType(),"message", "<script language='javascript' defer>alert('请您选择Excel文件!');</script>");
return;//当无文件时,返回
}
stringfilename = DateTime.Now.ToString("yyyymmddhhMMss") +FileUpload1.FileName;
//获取Execle文件名 DateTime日期函数
stringsavePath = Server.MapPath(("~/Doc/")+ filename);//Server.MapPath 获得虚拟服务器相对路径
//如果已经存在就清空
ClearFile(Server.MapPath("~/Doc/"));
FileUpload1.SaveAs(savePath); //SaveAs将上传的文件内容保存在服务器上
DataTabledt = createDataSource(savePath);
GridView1.DataSource = dt;
GridView1.DataBind();
}
在上面的代码中我们用到了一个函数ClearFile,它是用来清理文件夹的,我们将Excel文件暂时的存储到服务器端的一个文件夹中,只能暂时的存储,那么东西只会越来越多,而且这些东西也是一些没用的东西,很可能导致系统性能的下降。我们就是用这个函数来清理文件的,下面来一睹这个函数的精妙:
private void ClearFile(stringFilePath)
{
String[]files = System.IO.Directory.GetFiles(FilePath);
if(files.Length > 5)
{
for(int i = 0; i < 5; i++)
{
try
{
System.IO.File.Delete(files[i]);
}
catch
{
}
}
}
}
首先我们将这张表中的数据转换为DataTable类型的数据源,做一个函数来解决这个问题:
private DataTable createDataSource(string strPath)
{
stringstrCon;
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=" + strPath + ";Extended Properties=Excel 8.0";
OleDbConnectioncon = new OleDbConnection(strCon);
OleDbDataAdapterda = new OleDbDataAdapter("select * from [Sheet1$]", con);
DataTabledt = new DataTable();
da.Fill(dt);
returndt;
}
只需要传入Excel文件的路径即可。
其次我们就是利用这个可以函数了。要想将客户端的Excel文件显示到客户端的GridView控件当中,这次都是客户端的东西,在我们的服务器端代码是无法做到的。所以我们必须把这个Excel文件暂时的保存到服务器,我们读取服务器端的文件才可以实现这样的功能。看下面的实现代码:
protected void Button1_Click(objectsender, EventArgs e)
{
//检查文件是否存在
if(FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
{
Page.ClientScript.RegisterStartupScript(Page.GetType(),"message", "<script language='javascript' defer>alert('请您选择Excel文件!');</script>");
return;//当无文件时,返回
}
stringfilename = DateTime.Now.ToString("yyyymmddhhMMss") +FileUpload1.FileName;
//获取Execle文件名 DateTime日期函数
stringsavePath = Server.MapPath(("~/Doc/")+ filename);//Server.MapPath 获得虚拟服务器相对路径
//如果已经存在就清空
ClearFile(Server.MapPath("~/Doc/"));
FileUpload1.SaveAs(savePath); //SaveAs将上传的文件内容保存在服务器上
DataTabledt = createDataSource(savePath);
GridView1.DataSource = dt;
GridView1.DataBind();
}
在上面的代码中我们用到了一个函数ClearFile,它是用来清理文件夹的,我们将Excel文件暂时的存储到服务器端的一个文件夹中,只能暂时的存储,那么东西只会越来越多,而且这些东西也是一些没用的东西,很可能导致系统性能的下降。我们就是用这个函数来清理文件的,下面来一睹这个函数的精妙:
private void ClearFile(stringFilePath)
{
String[]files = System.IO.Directory.GetFiles(FilePath);
if(files.Length > 5)
{
for(int i = 0; i < 5; i++)
{
try
{
System.IO.File.Delete(files[i]);
}
catch
{
}
}
}
}
相关文章推荐
- [导入]Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- GridView表中数据导入excel文件中
- gridview读取Excel文件中的数据,并将其导入数据库
- Gridview读取Excel文件中的数据,并将其导入数据库
- [asp.net]把gridview的数据导入excel
- 把Excel中的数据导入gridView显示,再导入数据库
- Apache POI -- 读取Excel文件数据导入到数据库
- 将Excel文件中树状结构的数据导入到MSSQL数据库的表中
- R—读取数据(导入csv,txt,excel文件)
- FileUpload上传Excel文件,Aspose导入数据至数据库(web)
- 结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程
- C#导出GridView的数据到Excel以及Excel导入SQL Server
- asp.net<Web版> ---GridView 数据导出到excel表,系列问题<一>---导出的Excel文件格式与文件扩展名指定的格式不一致
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- 将Excel文件中的数据导入到表单
- 把Excel中的数据导入gridView显示,再导入数据库
- 将excel文件中的数据导入导出至SQL数据库中(重要)
- 在VS2005中,将DataGridView中的数据导入Excel文件
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- 将excel文件中的数据导入到mysql