gpt4 book ai didi

.net - 从两个(不同的)Excel 文件 .NET 中选择

转载 作者:行者123 更新时间:2023-12-04 21:40:43 27 4
gpt4 key购买 nike

任何人都可以帮我解决这个问题。
我想做这样的事情。

strSQL = SELECT  [filename1].[" & xlSheet.Name & "$].Col1
, [filename1].[" & xlSheet.Name & "$].Col2
FROM [filename1].[" & xlSheet.Name & "$]
UNION ALL
SELECT [filename2].[" & xlSheet2.Name & "$].Col1
, [filename2].[" & xlSheet2.Name & "$].Col2
FROM [Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename2+ ";Extended Properties=Excel 12.0;HDR=Yes].[" & xlSheet2.Name & "$]
WHERE [filename1].[" & xlSheet.Name & "$].Col1= [filename2].[" & xlSheet2.Name & "$].Col1

Using conExcel As New OleDb.OleDbConnection()
conExcel.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename1 + ";Extended Properties=Excel 12.0;HDR=Yes"
conExcel.Open()
cmdSelect.CommandText = strSQL
cmdSelect.Connection = conExcel
intRowsCount = cmdSelect.ExecuteNonQuery()

最佳答案

您不能使用一个 OleDb 连接来处理两个不同的文件。您需要为第二个文件创建另一个连接并以这种方式提取数据。

下面是我通常如何编写一个方法来从工作表中检索所有数据:

private DataTable RetrieveData(string filename, string sheetName)
{
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 12.0;HDR=YES\"";
string query = "SELECT * from [" + sheetName + "$]";
DataTable dt = new DataTable();

using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();

using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, conn))
{
dataAdapter.Fill(dt);
}

conn.Close();
}

return dt;
}

然后你可以用你的每个文件调用它:
DataTable dt1 = RetrieveData("filename1.xlsx", "Sheet1");
DataTable dt2 = RetrieveData("filename2.xlsx", "Sheet1");

关于.net - 从两个(不同的)Excel 文件 .NET 中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13688378/

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