使用 c# .net 读取 Excel 问题

发布于 2024-10-28 17:15:34 字数 506 浏览 7 评论 0原文

我使用 C# 从 Excel 工作表中读取数据。

这是我的代码并且它正在工作。

var fileName = @"C:\Users\yohan\Desktop\Brandix\y.xlsx";
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; data source=                  {0}; Extended Properties=Excel 12.0;", fileName);

var adapter = new OleDbDataAdapter("SELECT * FROM [BOM$]", connectionString);
var ds = new DataSet();

adapter.Fill(ds);
DataTable data = ds.Tables[0];

但它总是跳过 Excel 工作表的顶行,这是为什么呢? 请帮忙...!!

谢谢 约翰

I read data from excel sheet using C#.

Here is my code and it is working.

var fileName = @"C:\Users\yohan\Desktop\Brandix\y.xlsx";
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; data source=                  {0}; Extended Properties=Excel 12.0;", fileName);

var adapter = new OleDbDataAdapter("SELECT * FROM [BOM$]", connectionString);
var ds = new DataSet();

adapter.Fill(ds);
DataTable data = ds.Tables[0];

But it always skip the top row of the excel sheet why is that ?
Please help ...!!

Thank You
yohan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

遗失的美好 2024-11-04 17:15:34

这是 DataAdapter 的正常行为。顶行被视为标题行或“列名称”行。

要更改此行为,请将属性“HDR=NO”添加到连接字符串的扩展属性中,

示例:

var fileName = @"C:\Users\yohan\Desktop\Brandix\y.xlsx";
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=""Excel 12.0;HDR=NO;""", fileName);

var adapter = new OleDbDataAdapter("SELECT * FROM [BOM$]", connectionString);
var ds = new DataSet();

adapter.Fill(ds);
DataTable data = ds.Tables[0];

That is the normal behaviour of the DataAdapter. The top row is considered as an Header Row or a "Column Name" Row.

To change this behaviour add to the Extended Properties of your connection string the property "HDR=NO"

Example:

var fileName = @"C:\Users\yohan\Desktop\Brandix\y.xlsx";
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=""Excel 12.0;HDR=NO;""", fileName);

var adapter = new OleDbDataAdapter("SELECT * FROM [BOM$]", connectionString);
var ds = new DataSet();

adapter.Fill(ds);
DataTable data = ds.Tables[0];
ㄖ落Θ余辉 2024-11-04 17:15:34

尝试将 HDR=NO 添加到扩展属性中。

有关详细信息,请参阅此链接

Try adding HDR=NO to the extended properties.

see this link for details

深白境迁sunset 2024-11-04 17:15:34

尝试将连接字符串更改为...

   "Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=\"Excel 12.0;HDR:No\""

请参阅此页面以尝试更多可能的连接字符串。 HDR 设置确定提供程序是否将顶行视为列名称。

Try changing your connection string to ...

   "Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=\"Excel 12.0;HDR:No\""

See this page for more possible connection strings to try. The HDR setting determines wether the provider considers the top row to be column names.

回忆凄美了谁 2024-11-04 17:15:34

在服务器端应用程序中读取 Excel 文件的推荐方法是 Open XML。

您可以尝试安装 ACE 组件,但它仍然不推荐且不受支持。

要使用 Open XML,您可以访问以下链接,这将帮助您在代码中使用 Open XML 来读取 Excel 文件 -

Link1

链接2

链接3

Recommended way to read an Excel file in Server side app is Open XML.

You can try installing ACE component but still it remains un-recommended and unsupported.

For using Open XML you can go through below links which will help you using Open XML in your code for reading excel files -

Link1

Link2

Link3

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文