C# 读取Excel边学边用

来源:互联网 发布:电影人工智能影评 编辑:程序博客网 时间:2024/06/08 19:29

共有两种方法可以读取Excel文件

 

1. OleDB

(1)连接字符串

    对于xls:string connectString =
@" Provider=Microsoft.Jet.OLEDB.4.0;" +
@" Data Source=" + fileName + ";" +
@" Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"

其中HDR为Yes|No,表示第一行是否是标题,IMEX表示数据是不是混排的,叫Intermixed。这样读取时候直接按Text读,不自行根据第一列的数据属性瞎猜。否则,如果第一行是数字,会默认以后这一列全是数字,如果不是数字呢,就给个空值。

     对于xlsx:string connectString =
@" Provider=Microsoft.ACE.OLEDB.12.0;" +
@" Data Source=" + fileName + ";" +
@" Extended Properties'Excel 12.0;HDR=Yes;IMEX=1'" 

 

(2)连接步骤

OleDbConnection conn = new OleDbConnection(connectString);

conn.Open();

string cmdText = "select * from [Sheet1$]";
OleDbCommand comm = new OleDbCommand(cmdText, conn);

OleDbDataAdapter da = new OleDbDataAdapter(comm);

DataSet allData = new DataSet();
da.Fill(allData);

conn.Close();

 

(3)如何获得Sheet名称

DataTable ExcelSheets = ExcelConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

 

2. Excel类

// 以后用到了再补满