如何用批处理命令把1个文件夹里多个csv文件的某一列合并成一个txt

如何用批处理命令把1个文件夹里多个csv文件的某一列合并成一个txt,第1张

@echo off
cd>csvtxt
for %%i in (csv) do (
echo 正在处理%%i。。。
for /f "skip=1 tokens=4 delims=," %%j in (‘type "%%i") do echo %%j>>csvtxt))

(1)进行cmd DOS命令符状态下;
(2)如现有两个csv文件,分别是1csv和2cs,合并命令为:Copy 1csv+2csv 3csv
3csv为合并后的目标文件。

先把两个表的列排成一样的,然后把其中一张表直接复制到另一张表中, 接着用你的关键字排序,把相同的排在一起,再另找一列(比如G列),比如你的关键字在A列,那么G2单元格公式为:=A1=A2,然后将G列自动填充,最后全表进行筛选,选出G列中值为true的,删除整行,剩下的极为关键字唯一的数据了。谢谢!

建议写代码处理。写这个函数,然后调用:


Public Function ReadCSVFile(ByVal strFilePath As String, ByVal strFileName As String)
Dim I As Integer
Dim intCount As Long
'打开数据链接关键
connOpen "Driver={Microsoft Text Driver (txt; csv)};" & _
          "DBQ=" & strFilePath & ";Extensions=asc,csv,tab,txtersist Security Info=False"
 With rs
    CursorType = 2
    LockType = 3
    CursorLocation = 3
    ActiveConnection = conn
 End With
SQLcsv = "SELECT  FROM [" & strFileName & "]"
rsOpen SQLcsv
rsMove (1)          '移动到指定记录
intCount = DCount("[ship]", "info", "[ship]='" & rs(16) & "'")      '获取表中记录重复数
If intCount > 1 Then  '进行判断
    Response = MsgBox("是否要覆盖原有[" & rs(16) & "],点是将更新所有[" & rs(16) & "]数据", 4 + 32 + 256, "系统提示")
    If Response = vbNo Then   ' 当用户按下“否”。
       rsClose
        connClose
         Set rs = Nothing
           Set conn = Nothing
                  Exit Function
    End If
    DoCmdSetWarnings False
    DoCmdRunSQL "DELETE  from info where ship='" & rs(16) & "'"           '删除重复数据
    DoCmdSetWarnings True
  End If
      Set conn1 = CurrentProjectConnection
    sql = "Select  From info "
    rs1Open sql, conn1, 1, 3
Do Until rsEOF   '循环更新数据表
    
    rs1AddNew
    For I = 0 To 26
     rs1(I) = rs(I)
    Next
     
rsMoveNext
Loop
rs1UpdateBatch
rs1Close
conn1Close
Set rs1 = Nothing
rsClose
connClose
Set rs = Nothing
Set conn = Nothing
End Function

这个函数是导入csv,导入后再用联合查询处理下,然后导出Excel即可。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10537193.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存