gpt4 book ai didi

excel - 将 xls 读取为数据库时确定 Excel 文件的第一个工作表名称

转载 作者:行者123 更新时间:2023-12-03 02:56:55 25 4
gpt4 key购买 nike

我需要从 Excel 工作表中读入一些客户数据。我发现可以非常快速且轻松地将 *.xls 读取为数据,如下所示:

string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\MyExcelFile.xls;Extended Properties=\"Excel 8.0;HDR=YES\"";
using (var conn = new System.Data.OleDb.OleDbConnection(connString)) {
conn.Open();
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand("Select * From [SheetName$]", conn);
OleDbDataReader reader = cmd.ExecuteReader();
int firstNameOrdinal = reader.GetOrdinal("First Name");
int lastNameOrdinal = reader.GetOrdinal("Last Name");
while (reader.Read()) {
Console.WriteLine("First Name: {0}, Last Name: {1}",
reader.GetString(firstNameOrdinal),
reader.GetString(lastNameOrdinal));
}
}

问题出现在第四行:SELECT * FROM [SheetName$]。在此示例中,您需要将 "SheetName" 替换为您尝试读取的工作表的名称。大多数时候,客户都会将其命名为相同的,一切都很好。

但有时他们不会,这意味着我们需要进行一些手动工作来修复它。总是只有一张纸(无论如何在这种情况下),所以我宁愿告诉代码“使用第一张纸,无论它的名称是什么”。

我一直无法找到使用这种技术来完成此任务的方法,因此我正在向社区伸出援手。预先感谢您的任何建议。

PS - 我们必须对外部文件(例如 FileHelpers)进行长度审批流程,我更喜欢使用此流程,因为它不需要第三方库。如果可能的话,我宁愿限制对此方法的答案。

谢谢。

最佳答案

这里的答案可能适合您的需求:

http://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/thread/711cf5f9-75fc-4a02-9a96-08aec48dad69/

它使用 .GetOleDbSchemaTable() 获取工作簿中工作表名称的列表。

关于excel - 将 xls 读取为数据库时确定 Excel 文件的第一个工作表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14313458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com