簡體   English   中英

OleDb Excel與來自C#的未命名列聯接

[英]OleDb Excel join with unnamed columns from c#

我正在嘗試使用ACE.OleDb在兩張紙之間執行連接。 列是未命名的,因此我不能在ON條件下使用列的名稱。

使用的ConnectionString是:

String.Format("Provider = {0}; Data Source = {1}; Extended Properties = \"{2}\" ", "Microsoft.ACE.OLEDB.12.0", file, "Excel 8.0;HDR=YES");

使用命名列,這樣的效果很好:

select * from [sheet1$] inner join [sheet2$] on [sheet1$].[ID] = [sheet2$].[ID]

¿沒有命名列ID的任何方法? 當然我知道該列的索引,它將永遠是第一個。

我嘗試過類似的嘗試,但沒有成功:

select * from [sheet1$] inner join [sheet2$] on [sheet1$].[$A] = [sheet2$].[$A]

結果是:

Syntax error in JOIN operation

要使用未命名的列,必須在連接HDR=NO中設置HDR=NO

“ Provider = Microsoft.ACE.OLEDB.12.0;數據源= D:\\ myfile.xlsx;擴展屬性= \\” Excel 12.0 Xml; HDR = NO \\“

使用此設置,每一列都會獲得諸如F1,F2,F3之類的名稱。

您可以像這樣使用它們:

select * from [sheet1$] inner join [sheet2$] on [sheet1$].[F1] = [sheet2$].[F2]

列的自動命名是指您用作表的列。 因此,如果您說select * from [sheet1$B1] ... B列將作為F1可用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM