我讀使用C#這樣讀取Excel文件(.xlsx)格式文件
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName +
";Extended Properties=\"Excel 12.0;HDR=No;IMEX=1\";";
var output = new DataSet();
using (var conn = new OleDbConnection(strConn))
{
conn.Open();
var dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
foreach (DataRow row in dt.Rows)
{
string sheet = row["TABLE_NAME"].ToString();
var cmd = new OleDbCommand("SELECT * FROM [+"+sheet+"+]", conn);
cmd.CommandType = CommandType.Text;
OleDbDataAdapter xlAdapter = new OleDbDataAdapter(cmd);
xlAdapter.Fill(output,"School");
}
}
.xlsx文件但我在xlAdapter.Fill收到錯誤(輸出, 「學校」); 錯誤是
The Microsoft Office Access database engine could not find the object '+_xlnm.Print_Area+'. Make sure the object exists and that you spell its name and the path name correctly.
我無法弄清楚,什麼是錯的代碼中發生的事情。
什麼是您的excel文件的版本? – Alex
是否有這樣做的理由?你不能用一些現有的庫來閱讀'* .xlsx'文件嗎? – harry180
@voo它是excel 2007文件。 –