导出Excel就经常见,但是怎样才能把Excel导入到页面??容器任选
解决方案 »
- 如何在网页中内嵌其他播放器
- 请问下面两种CSS写法有什么区别?
- 请教个GridView的问题
- ERROR [42000] [MySQL][ODBC 5.1 Driver][mysqld-5.5.28]错误
- ASP.net高级程序应该学一些什么?
- 关于拉里巴巴站点全部都是.htm/.html/.shtml 静态页面的疑问
- 请高手指点
- 怎麼去封裝DataGrid轉Excel這一段代碼(請教高手)
- 在asp.net中如何用owc生成内有图表的excel文件?
- 为什么我新建一个web service的时候会出错呢?很烦阿!麻烦帮一帮手!
- 有谁用过fckeditor帮个忙 急
- 类型转换 的问题,最后20分啦!
OleDbCommand cmd = new OleDbCommand("Select * from [Tablename$]", conn);
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
grdRankList.DataSource = dr;
grdRankList.DataBind();
dr.Close();
conn.Close();
EXCEL读取与写入数据的最佳方案(个人认为)
发表日期:2006-01-06 14:32 浏览人数:21 发表者:admin 【字体:大 中 小】
--------------------------------------------------------------------------------EXCEL读取与写入数据的最佳方案(个人认为)
在以往使用Excel文件时,我一般认为是使用COM组件进行EXCEL文档的操作,这样写程序即费时又费力(因为EXCEL组件没有帮助提示),写的程序还是大篇的重复代码。为什么为这样那?因为我们总是把一个EXCEL文件当做系统文件进行操作。
如果把EXCEL文件当做一个数据源来进行数据的读取操作时,就可以使用开发环境提供的数据访问方法来访问EXCEL文件了。这样就可以使用开发环境的帮助(提示)即快速又不费力的来读取和写入数据到EXCEL中。这样的代码即整洁又高效,同时代码还可以得到复用。
下面的例子是使用.NET对EXCEL文件的读取和写入
示例的应用环境是从其它一个或多个EXCEL中读取数据,然后将多个数据写入到一个汇总的EXCEL(汇总的EXCEL文件只有表头没有数据)。前提是EXCEL文件内的结构是一样的。
Excel文件的读取
public DataSet ExcelToDS(string Path)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
DataSet ds = null;
strExcel="select * from [sheet1$]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
ds = new DataSet();
myCommand.Fill(ds,"table1");
return ds;
}
对于EXCEL中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);
string tableName=schemaTable.Rows[0][2].ToString().Trim();
Excel文件的写入
public void DSToExcel(string Path,DataSet oldds)
{
//先得到汇总EXCEL的DataSet 主要目的是获得EXCEL在DataSet中的结构
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source ="+path1+";Extended Properties=Excel 8.0" ;
OleDbConnection myConn = new OleDbConnection(strCon) ;
string strCom="select * from [Sheet1$]";
myConn.Open ( ) ;
OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom, myConn ) ;
ystem.Data.OleDb.OleDbCommandBuilder builder=new OleDbCommandBuilder(myCommand);
//QuotePrefix和QuoteSuffix主要是对builder生成InsertComment命令时使用。
builder.QuotePrefix="["; //获取insert语句中保留字符(起始位置)
builder.QuoteSuffix="]"; //获取insert语句中保留字符(结束位置)
DataSet newds=new DataSet();
myCommand.Fill(newds ,"Table1") ;
for(int i=0;i<oldds.Tables[0].Rows.Count;i++)
{
//在这里不能使用ImportRow方法将一行导入到news中,因为ImportRow将保留原来DataRow的所有设置(DataRowState状态不变)。在使用ImportRow后newds内有值,但不能更新到Excel中因为所有导入行的DataRowState!=Added
DataRow nrow=aDataSet.Tables["Table1"].NewRow();
for(int j=0;j<newds.Tables[0].Columns.Count;j++)
{
nrow[j]=oldds.Tables[0].Rows[i][j];
}
newds.Tables["Table1"].Rows.Add(nrow);
}
myCommand.Update(newds,"Table1");
myConn.Close();
}
以上只是一个示例只能给大家提供一个关于操作EXCEL另一条思路,具体案例具体开发!!!!!!!