OLEDB不返回excel文件的第一行
本文关键字:一行 返回 excel 文件 OLEDB | 更新日期: 2023-09-27 18:08:19
我使用Microsoft. ace . oledb .12.0连接到Microsoft excel文件并从中获取数据。我使用Visual Studio 2012用c#语言编写代码。下面是我的代码:
public DataTable getData(string fileName, string sheetName)
{
connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='"
+ fileName
+ "';Extended Properties= 'Excel 8.0;HDR=Yes;IMEX=1'";
errorCode = ErrorDefinition.ERROR_NOERROR;
errorMessage = "";
DataTable dt = new DataTable();
try
{
string query = "SELECT * FROM [" + sheetName + "]";
OleDbConnection con = new OleDbConnection(connectionString);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, con);
dataAdapter.Fill(dt);
}
catch (Exception exp)
{
errorCode = ErrorDefinition.ERROR_OLEDBERROR;
errorMessage = exp.Message;
}
return dt;
}
问题是dt
不包含文件中指定工作表的第一行。有什么问题吗?
在您的连接字符串中,您使用设置"HDR=YES"
,这意味着OleDb将Excel文件中的第一行视为包含由当前工作表表示的表字段名的行。
使用"HDR=NO"
向OleDb表明第一行包含数据,并且列名将按顺序自动命名。如"F1"、"F2"、"F3"等....
尝试HDR=NO
连接字符串