asp.net 如何将excel导入数据库
来源:互联网 发布:数据报和虚电路 编辑:程序博客网 时间:2024/05/21 22:21
asp.net 如何将excel导入数据库
1、Excel数据导入到数据库中:
//该方法实现从Excel中导出数据到DataSet中,其中filepath为Excel文件的绝对路径,sheetname为表示那个Excel表;
public DataSet ExcelDataSource( string filepath , string sheetname )
...{
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" filepath ";Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter oada = new OleDbDataAdapter ( "select * from [" sheetname "$]", strConn );
DataSet ds = new DataSet ();
oada.Fill ( ds );
return ds ;
}
上面的代码实现了将Excel中的数据写进DataSet中,实现了这一步后,你可以按照自己的需要对获得DataSet进行处理,需要注意的一个问题是,你必须要指定sheetname,即Excel中的哪一个工作单需要导入,否则会出现错误。
2、如何从Excel中获得工作单(sheetname):
public ArrayList ExcelSheetName ( string filepath )
...{
ArrayList al = new ArrayList ();
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" filepath ";Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open ();
DataTable sheetNames = conn.GetOleDbSchemaTable
(System.Data.OleDb.OleDbSchemaGuid.Tables,new object[]...{null,null,null,"TABLE"});
conn.Close ();
foreach ( DataRow dr in sheetNames.Rows )
...{
al.Add ( dr[2] );
}
return al;
}
通过这两步,就基本可以实现将Excel导入到数据库中了,具体实现中的细节问题,你可以自己在实践中获得。
3、将数据库中的数据导入Excel中,在这里我讲叙自己实践中的两个方法:
方法一:从最基本的写文件入手,将从数据库中读出来的数据写入到Excel中;
//该方法实现将数据导入到Excel文件中,其中的DataTable dt就是你需要将数据写入到Excel中的数据;
public void ExportExcel( DataTable dt , StreamWriter w )
...{
try
...{
for( int i = 0 ; i < dt.Columns.Count ; i )
...{
w.Write ( dt.Columns[i] );
w.Write( '' );
}
w.Write ( "" );
object[] values = new object [dt.Columns.Count];
foreach ( DataRow dr in dt.Rows )
...{
values = dr.ItemArray ;
for ( int i = 0 ; i < dt.Columns.Count ; i )
...{
w.Write ( values[i] );
w.Write ( '' );
}
w.Write ( "" );
}
w.Flush();
w.Close();
}
catch
...{
w.Close();
}
}
StreamWriter w就是你自己创建的一个流,创建该数据流时,你需要自己指定需要将数据写入到那个文件,即指定文件路径,要实现下载的话,就可以简单的用Response.Redirect ( "指定需要被下载的文件路径" );
方法二:该方法实现的是将数据从DataGrid中导入到Excel中:
//filename为Excel的名字,ToExcelGrid就是数据源,在此为DataGrid数据源;
private void ExportExcelFromDataGrid( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )
...{
Response.Clear();
Response.Buffer= true;
Response.Charset="utf-8";
Response.AppendHeader("Content-Disposition","attachment;filename="Server.UrlEncode ( filename ) );
Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
用该方法的时候,需要注意将DataGrid数据源中的允许翻页,允许排序设置成"false",同时一些特殊行进行需要将其设置成不可视,如编辑行等,若不这样的话,用该方法实现的数据导入到Excel,会出现异常“需要将XXX放入到一个具有runat=server的form窗体中”,我具体忘了XXX代表的意思,你可以在实践中尝试一下,就可以知道出现的错误。
这篇文章放在这里是为了用到的时候省的找了,别无他意.
需要说明的是excel文档必须先上传到服务器才能进行操作.
你可以通过这个链接引用该篇文章:http://smartrain.bokee.com/viewdiary.26169194.html
- asp.net 如何将excel导入数据库
- asp.net怎么将Excel表导入到sql数据库
- 用asp.net将Excel导入到数据库并显示
- ASP.NET将EXCEL导入SQL SERVER数据库的代码
- ASP.NET将EXCEL导入SQL SERVER数据库的代码
- 转:Asp.Net将Excel数据导入Sql Server数据库
- C# 或Asp.Net 将excel表格导入数据库
- ASP.NET将EXCEL导入SQL SERVER数据库的代码
- 将Excel内容导入数据库(ASP.NET/C#)
- 将Excel内容导入数据库(ASP.NET/C#)
- 将Excel内容导入数据库(ASP.NET/C#)
- ASP.NET将EXCEL导入SQL+SERVER数据库的代码
- C# 或Asp.Net 将excel表格导入数据库
- ASP.NET将EXCEL导入SQL SERVER数据库的代码
- ASP.NET数据库导入Excel
- ASP.NET Excel 导入数据库
- 如何将Excel导入数据库
- 如何将Excel导入数据库
- Android基础-----Progress Dialog
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
- NoSQL数据库之MongoDB学习笔记
- 前车之鉴 代码安全问题总结教训
- Render process
- asp.net 如何将excel导入数据库
- 一日一点RakNet(14)--Recieving Packets
- C# Thread
- 如何查询一个IP上所绑定的域名
- C#中日期型数据和长整型数据之间的转换,以及格式字串转换
- PyDev for Eclipse 简介
- xml
- ext2.2打造全新功能grid系列--批量删除篇 .
- 使用XML及XSL生成简单HTML