標籤:style blog os 使用 io strong 檔案 for 資料
問題:使用C#程式讀取excel檔案,包括尾碼為.xls和.xlsx
相信很多朋友都有在程式中讀取excel檔案的需求,我在調研的過程中也看了很多文章,基本思路都是正確的,但是有一些代碼是沒有通過驗證的,在實際操作的過程中總會遇到一些問題,經過摸索,最終總結出一套可行的方案,在這裡跟大家分享。
讀取Excel的方法有多種,我這裡選擇了一種效率較高的方法,將讀取出來的資料存放到一個DataSet之中。
代碼如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data.OleDb;using System.Data;namespace ConvertEXCEL2DLL{ //實現讀取Excel檔案的功能 class ReadExcel { private static String strCon1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="; private static String strCon2 = ";Extended Properties='Excel 8.0;HDR=No;IMEX=1;'"; public static String m_filePathExcel = "c:\\test.xls"; /*從excel中讀取資料*/ public static DataSet ImportExcelToDataSet() { OleDbConnection conn = new OleDbConnection(strCon1 + m_filePathExcel + strCon2); try { conn.Open(); } catch (InvalidOperationException ie) { Console.Write("串連重複開啟。\n"); } catch (OleDbException oe) { Console.Write("在開啟串連時出現串連層級的錯誤。\n"); } OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT *FROM [Sheet1$]", conn); DataSet myDataSet = new DataSet(); try { myCommand.Fill(myDataSet); Console.WriteLine("Read OK "); } catch (Exception ex) { Console.Write("formation error"); } return myDataSet; } }}
注意:其實這裡需要強調的只有一點,那就是strCon1 StrCon2和 m_filePathExcel的格式,要注意這裡面的空格不能少,單引號不能少,m_filePathExcel中的\要轉義為\\。
HDR = Yes的含義是Excel表中第一行為表頭,不需要讀出,如果需要則改為No。其他的含義都可以在網上查到。
[Windows問題-4] C#讀取excel檔案