共有两种方法可以读取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类
// 以后用到了再补满