J'ai des fichiers Excel convertis en txt. Dans certains fichiers, certaines colonnes sont ignorées. Cela est contrôlé par la base de données:Récupère toutes les colonnes d'Excel sauf celles sélectionnées
file | remove_column
=======+===============
file1 | CASE NOTE
-------+---------------
file2 | Description
-------+---------------
file3 | Item | Address
Remove_Column a l'en-tête (1ère ligne). Si plusieurs colonnes doivent être ignorées, elles sont délimitées par '|'
Je dois comparer le fichier txt converti avec le fichier Excel original s'il correspond. Comment puis-je lire toutes les colonnes sauf celles affichées dans la table DB?
J'utilise UFT 12.5. Lire Excel via Excel.Application ou ADO. Thnx)
UPD: Code I utiliser:
J'ai colonnes codées en dur:
Select Case OrigFileName 'file names come from database
Case "Fees mm-yy.xls"
ColumnNames = Split("1,2,3,4,5,6,7,8,9,10,11,12,13", ",")
Case "Exp mm-yy.xls"
ColumnNames = Split("1,2,3,4,5,6,7,8,9,12,13,14,15,16,19,20", ",")
End Select
Mais il y a 50 fichiers, et l'entreprise peut demander de retirer ou de rajouter des colonnes En outre, de nouveaux fichiers sont à venir ... (((
Dim fsox : Set fsox = CreateObject("Scripting.FileSystemObject")
Dim TargFileRead : Set TargFileRead = fsox.OpenTextFile(targetFile)
Dim OrgExcel : Set OrgExcel = CreateObject("Excel.Application")
OrgExcel.Workbooks.Open(originalfile)
Set vSheet = OrgExcel.WorkSheets(TabUse) 'excel sheet name, comes from database
print vSheet.UsedRange.Rows.Count
For rc = 1 To vSheet.UsedRange.Rows.Count
For coc = 0 To UBound(ColumnNames) 'column names hard-coded
cc = cInt(ColumnNames(coc))
vtext = vSheet.cells(rc,cc)
If NOT(vtext=ChrW(9)) Then
If vstring="" Then
vstring=vtext
Else
vstring = vstring&vbTab&vtext
End If
End If
If len(vstring)>0 Then
TargFileText = TargFileRead.ReadLine
Do
If Left(TargFileText, 1)=ChrW(9) Then
TargFileText = MID(TargFileText, 2)
Else
Exit Do
End If
Loop
Do
If RIGHT(TargFileText, 1)=ChrW(9) Then
TargFileText= mid(TargFileText,1,len(TargFileText)-1)
Else
Exit Do
End If
Loop
TargFileStr = Trim(TargFileText)
If trim(vstring) = trim(TargFileStr) Then
' print "match"
Else
print "-=Not Match=-"&VBNewLine&"txt:::"&trim(TargFileStr)&VBNewLine&"xls:::"&trim(vstring)
End If
End If
Next
Avez-vous du code pour lire toutes les colonnes, mais vous ne savez pas comment ignorer certaines colonnes? Si oui, pouvez-vous s'il vous plaît fournir votre code. – JensS
oh, oui, j'ai oublié ... Maintenant, la question est mise à jour. – Salek
Juste pour clarifier: l'objectif est de remplacer les ColumnNumbers par un algorithme lisant toutes les colonnes à l'exception de celles qui ont la chaîne dans votre table pour la feuille de calcul dans la ligne 1, n'est-ce pas? – JensS