C#操作Excel(读取)
生活随笔
收集整理的這篇文章主要介紹了
C#操作Excel(读取)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.使用OleDb,這個法子好像不大好使.容易讀錯.
引用System.Data.OleDb;
????????///?返回Excel數據源
????????///?</summary>
????????///?<param?name="filename">文件路徑</param>
????????///?<returns></returns>?
????static?public?DataSet?ExcelToDataSet(string?filename)
????{
????????DataSet?ds;
????????string?strCon?=?"Provider=Microsoft.Jet.OLEDB.4.0;"?+
????????????????????????"Extended?Properties=Excel?8.0;"?+
????????????????????????"data?source="?+?filename;
????????OleDbConnection?myConn?=?new?OleDbConnection(strCon);
????????string?strCom?=?"?SELECT?*?FROM?[Sheet1$]";
????????myConn.Open();
????????OleDbDataAdapter?myCommand?=?new?OleDbDataAdapter(strCom,?myConn);
????????ds?=?new?DataSet();
????????myCommand.Fill(ds);
????????myConn.Close();
????????return?ds;
????}
二.使用com.
導入Microsoft.Excel
使用命名空間
using Excel= Microsoft.Office.Interop.Excel;
using System.Diagnostics;
????{
??????private?Excel._Application?excelApp;
??????private?string?fileName=string.Empty;
??????private?Excel.WorkbookClass?wbclass;
??????public?ExcelHelper(string?_filename)
??????{
??????????excelApp?=?new?Excel.Application();
??????????object???objOpt???=???System.Reflection.Missing.Value;
??????????wbclass?=?(Excel.WorkbookClass)excelApp.Workbooks.Open(_filename,?objOpt,?false,?objOpt,?objOpt,?objOpt,?true,?objOpt,?objOpt,?true,?objOpt,?objOpt,?objOpt,?objOpt,?objOpt);
??????}
??????/**////?<summary>
??????///?所有sheet的名稱列表
??????///?</summary>
??????///?<returns></returns>
??????public?List<string>?GetSheetNames()
??????{
??????????List<string>?list?=?new?List<string>();
??????????Excel.Sheets?sheets?=?wbclass.Worksheets;
??????????string?sheetNams?=?string.Empty;
??????????foreach?(Excel.Worksheet?sheet?in?sheets)
??????????{
????????????list.Add(sheet.Name);
??????????}
??????????return?list;
??????}
??????public?Excel.Worksheet?GetWorksheetByName(string?name)
??????{
??????????Excel.Worksheet?sheet=null;
??????????Excel.Sheets?sheets=?wbclass.Worksheets;
??????????foreach?(Excel.Worksheet?s?in?sheets)
??????????{
??????????????if?(s.Name?==?name)
??????????????{
??????????????????sheet?=?s;
??????????????????break;
??????????????}
??????????}
??????????return?sheet;
??????}
??????/**////?<summary>
??????///?
??????///?</summary>
??????///?<param?name="sheetName">sheet名稱</param>
??????///?<returns></returns>
??????public?Array?GetContent(string?sheetName)
??????{
??????????Excel.Worksheet?sheet?=?GetWorksheetByName(sheetName);
??????????//獲取A1?到AM24范圍的單元格
??????????Excel.Range?rang?=?sheet.get_Range("A1",?"AM24");
??????????//讀一個單元格內容
??????????//sheet.get_Range("A1",?Type.Missing);
????????//不為空的區域,列,行數目
???????//???int?l?=?sheet.UsedRange.Columns.Count;
?????????//?int?w?=?sheet.UsedRange.Rows.Count;
????????//??object[,]?dell?=?sheet.UsedRange.get_Value(Missing.Value)?as?object[,];
??????????System.Array?values?=?(Array)rang.Cells.Value2;
??????????return?values;
??????}
??????public?void?Close()
??????{
??????????excelApp.Quit();
??????????excelApp?=?null;
??????}
???
????}
?
轉載于:https://www.cnblogs.com/wwwzzg168/p/3572039.html
總結
以上是生活随笔為你收集整理的C#操作Excel(读取)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你用哪种工具进行iOS app自动化功能
- 下一篇: wpf中把按钮变成圆角