国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET讀取Excel文件的三種方法的區別

2024-07-10 12:46:18
字體:
來源:轉載
供稿:網友

ASP.NET讀取Excel文件方法一:采用OleDB讀取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);  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白河县| 明溪县| 舒兰市| 大渡口区| 乌苏市| 定兴县| 溧水县| 延安市| 东台市| 东源县| 巴彦淖尔市| 平舆县| 年辖:市辖区| 辰溪县| 沂水县| 赣榆县| 嘉定区| 通道| 柳河县| 三原县| 湖口县| 额敏县| 沈阳市| 望奎县| 连平县| 若尔盖县| 肇庆市| 汨罗市| 沐川县| 楚雄市| 崇信县| 嘉荫县| 池州市| 松原市| 宜丰县| 安多县| 浏阳市| 文成县| 永济市| 长葛市| 防城港市|