字面上的意思,比較特別值得注意的只有連線字串裡 HDR=Yes 這個參數表示第一行為欄名。
- public DataTable RenderDataTableFromExcel(string fullPath)
- {
- string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\"";
- connStr = string.Format(connStr, fullPath);
- string sheetName = null;
- DataTable sheetNames = default(DataTable);
- OleDbConnection conn = default(OleDbConnection);
- conn = new OleDbConnection(connStr);
- conn.Open();
- sheetNames = conn.GetSchema("Tables");
- if (sheetNames.Rows.Count > 0)
- sheetName = sheetNames.Rows[0]["TABLE_NAME"].ToString();
- sheetNames.Clear();
- sheetNames.Dispose();
- OleDbCommand cmd = new OleDbCommand(string.Format("SELECT * FROM [{0}]", sheetName), conn);
- OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
- DataTable dt = new DataTable();
- adapter.Fill(dt);
- conn.Close();
- return dt;
- }
ref: Sai Fan Chen's Blog
沒有留言:
張貼留言