2010-07-13 2 views
-1

У меня 2 Excel листов (с помощью Excel 2007)Как сравнить 2 первенствовать столбец листа значения

Excel sheet1 с именами столбцов

name 
kumar 
manu 
kiran 
anu 

Excel sheet2 с именами столбцов

name 
kumar 
anu 

I будет загружать листы, а затем я нажимаю кнопку (здесь я буду сравнивать столбцы имен с каждого листа), тогда мне нужно добавить имена, отсутствующие на листе 2, на другой лист Excel и сохранить в D: \ names.xlsx

Так names.xlsx лист должен содержать

names 
manu 
kiran 

Надежда мой вопрос ясно, любая помощь будет большим Yaar

+0

извините - у меня нет на самом деле вопроса - возможно, форматирование вашего вопроса потерялось ...? – santa

ответ

1

Самый простой способ сделать это было бы:

  1. прочитайте файл excel в datatable в C#
  2. используйте функцию слияния данных для объединения столбцов
  3. верните данные в файл excel.
+0

Вы можете читать Excel как данные в VBA тоже –

1

Вы можете использовать ADO.

Dim cn As Object 
Dim rs As Object 
Dim strFile As String 
Dim strCon As String 
Dim strSQL As String 
Dim s As String 
Dim i As Integer, j As Integer 

''This is not the best way to refer to the workbook 
''you want, but it is very convenient for notes 
''It is probably best to use the name of the workbook. 

strFile = ActiveWorkbook.FullName 

''Note that if HDR=No, F1,F2 etc are used for column names, 
''if HDR=Yes, the names in the first row of the range 
''can be used. 
''This is the Jet 4 connection string, you can get more 
''here : http://www.connectionstrings.com/excel 

strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _ 
    & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";" 

''Late binding, so no reference is needed 

Set cn = CreateObject("ADODB.Connection") 
Set rs = CreateObject("ADODB.Recordset") 


cn.Open strCon 

strSQL = "SELECT [Name] " _ 
     & "FROM [Sheet1$] a " _ 
     & "LEFT JOIN [Sheet2$] b " _ 
     & "ON a.[Name]=b.[Name] " _ 
     & "WHERE b.Name Is Null" 

rs.Open strSQL, cn, 3, 3 


''Pick a suitable empty worksheet for the results 

Worksheets("Sheet3").Cells(2, 1).CopyFromRecordset rs 

''Tidy up 
rs.Close 
Set rs=Nothing 
cn.Close 
Set cn=Nothing