一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net 讀取Excel數據到DataTable的代碼

asp.net 讀取Excel數據到DataTable的代碼

2019-08-29 09:46服務器之家 ASP.NET教程

asp.net 讀取Excel數據到DataTable的代碼,需要的朋友可以參考下。

代碼如下:


/// <summary> 
/// 獲取指定路徑、指定工作簿名稱的Excel數據:取第一個sheet的數據 
/// </summary> 
/// <param name="FilePath">文件存儲路徑</param> 
/// <param name="WorkSheetName">工作簿名稱</param> 
/// <returns>如果爭取找到了數據會返回一個完整的Table,否則返回異常</returns> 
public DataTable GetExcelData(string astrFileName) 

string strSheetName = GetExcelWorkSheets(astrFileName)[0].ToString(); 
return GetExcelData(astrFileName, strSheetName); 



代碼 

復制代碼代碼如下:


/// <summary> 
/// 返回指定文件所包含的工作簿列表;如果有WorkSheet,就返回以工作簿名字命名的ArrayList,否則返回空 
/// </summary> 
/// <param name="strFilePath">要獲取的Excel</param> 
/// <returns>如果有WorkSheet,就返回以工作簿名字命名的ArrayList,否則返回空</returns> 
public ArrayList GetExcelWorkSheets(string strFilePath) 

ArrayList alTables = new ArrayList(); 
OleDbConnection odn = new OleDbConnection(GetExcelConnection(strFilePath)); 
odn.Open(); 
DataTable dt = new DataTable(); 
dt = odn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
if (dt == null) 

throw new Exception("無法獲取指定Excel的架構。"); 

foreach (DataRow dr in dt.Rows) 

string tempName = dr["Table_Name"].ToString(); 
int iDolarIndex = tempName.IndexOf('$'); 
if (iDolarIndex > 0) 

tempName = tempName.Substring(0, iDolarIndex); 

//修正了Excel2003中某些工作薄名稱為漢字的表無法正確識別的BUG。 
if (tempName[0] == '\'') 

if (tempName[tempName.Length - 1] == '\'') 

tempName = tempName.Substring(1, tempName.Length - 2); 

else 

tempName = tempName.Substring(1, tempName.Length - 1); 


if (!alTables.Contains(tempName)) 

alTables.Add(tempName); 


odn.Close(); 
if (alTables.Count == 0) 

return null; 

return alTables; 


代碼 

復制代碼代碼如下:


/// <summary> 
/// 獲取指定路徑、指定工作簿名稱的Excel數據 
/// </summary> 
/// <param name="FilePath">文件存儲路徑</param> 
/// <param name="WorkSheetName">工作簿名稱</param> 
/// <returns>如果爭取找到了數據會返回一個完整的Table,否則返回異常</returns> 
public DataTable GetExcelData(string FilePath, string WorkSheetName) 

DataTable dtExcel = new DataTable(); 
OleDbConnection con = new OleDbConnection(GetExcelConnection(FilePath)); 
OleDbDataAdapter adapter = new OleDbDataAdapter("Select * from [" + WorkSheetName + "$]", con); 
//讀取 
con.Open(); 
adapter.FillSchema(dtExcel, SchemaType.Mapped); 
adapter.Fill(dtExcel); 
con.Close(); 
dtExcel.TableName = WorkSheetName; 
//返回 
return dtExcel; 


代碼 

復制代碼代碼如下:


/// <summary> 
/// 獲取鏈接字符串 
/// </summary> 
/// <param name="strFilePath"></param> 
/// <returns></returns> 
public string GetExcelConnection(string strFilePath) 

if (!File.Exists(strFilePath)) 

throw new Exception("指定的Excel文件不存在!"); 

return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";Extended properties=\"Excel 8.0;Imex=1;HDR=Yes;\""; 
//@"Provider=Microsoft.Jet.OLEDB.4.0;" + 
//@"Data Source=" + strFilePath + ";" + 
//@"Extended Properties=" + Convert.ToChar(34).ToString() + 
//@"Excel 8.0;" + "Imex=1;HDR=Yes;" + Convert.ToChar(34).ToString(); 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产午夜精品久久久久小说 | 国产三级精品久久三级国专区 | 亚洲国产精品91 | 亚洲性69影视| 欧美精品成人a多人在线观看 | 国产在线激情视频 | 国产小青蛙 | 国产福利在线观看91精品 | 久久成人国产精品一区二区 | 国产精品毛片va一区二区三区 | 5g影院天天影院天天爽影院网站 | 成年私人影院免费视频网站 | 国产黄色大片网站 | 国产精品麻豆99久久 | 乌克兰肥熟 | 韩国成人毛片aaa黄 含羞草国产亚洲精品岁国产精品 | 亚洲区精品久久一区二区三区 | 国产新疆成人a一片在线观看 | 国产盗摄wc厕所撒尿视频 | 国产精品视频免费观看 | 国产乱子伦在线观看不卡 | 美女被草漫画 | 美女流白浆| 荡女人人爱全文免费阅读 | xx18-19xxxxhd| 亚洲精品一 | 婷婷伊人综合亚洲综合网 | 日本黄色一区 | 国产va免费精品高清在线 | 亚洲福利精品电影在线观看 | 91高清免费国产自产 | 四虎综合九九色九九综合色 | 国产探花在线视频 | 亚洲欧美精品天堂久久综合一区 | 香蕉久草| 日本xx高清视频免费观看 | bt国产| 男女男精品网站免费观看 | 顶级欧美做受xxx000大乳 | 亚裔aⅴ艳星katsuni | 韩日视频在线 |