excel文件的多个sheet表合并成一个csv文件并导入数据库

作者:WenWu_Both
出处:http://blog.csdn.net/wenwu_both/article/
版权:本文版权归作者和CSDN博客共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文链接;否则必究法律责任

最近帮一个老师处理数据,结果他发给我的是一堆excel文件,而且每个excel文件又包含很多sheet表,所以想把这些sheet整合成一个csv文件,但excel的“另存为”只支持当前sheet的操作,如果一个个文件一个个sheet的操作过来,实在是费事,所以想到了调用excel的VBA,很轻松的完成了任务,怕后面遗忘了,所以记录一下:

(1)sheet表转成csv文件

VBA代码:

Sub SaveToCSVs()
    Dim fDir As String
    Dim wB As Workbook
    Dim wS As Worksheet
    Dim fPath As String
    Dim sPath As String
    fPath = "C:\Users\JiaoTong\Desktop\data\"
    sPath = "D:\csvdata\"
    fDir = Dir(fPath)
    Do While (fDir <> "")
        If Right(fDir, 4) = ".xls" Or Right(fDir, 5) = ".xlsx" Then
            On Error Resume Next
            Set wB = Workbooks.Open(fPath & fDir)
            'MsgBox (wB.Name)
            For Each wS In wB.Sheets
                wS.Copy 'to a new workbook
                wS.SaveAs sPath & wB.Name & ".csv", xlCSV
            Next wS
            wB.Close False
            Set wB = Nothing
        End If
        fDir = Dir
        On Error GoTo 0
    Loop
End Sub

其中’fPath’为存放原始数据(excel文件)的路径
‘sPath’为存放生成数据(csv文件)的路径

这里写图片描述

上述代码是将文件夹里所有excel文件的所有sheet表均转化成csv,如果有些sheet表不想导出,可以先选择好想要导出的sheet表,然后执行以下代码:

Option Explicit
Sub ExportSelectionToCSV()
    Dim wks As Worksheet
    Dim newWks As Worksheet
    For Each wks In ActiveWindow.SelectedSheets
        wks.Copy 'to a new workbook
        Set newWks = ActiveSheet
        With newWks
            Application.DisplayAlerts = False
            .Parent.SaveAs Filename:="D:\csvdata\" & .Name, _
                FileFormat:=xlCSV
            Application.DisplayAlerts = True
            .Parent.Close savechanges:=False
        End With
    Next wks
End Sub

(2)多个csv文件合并

第一步将文件夹里的所有excel文件的所有sheet表均转化成了csv文件,下面我们将这些csv文件合并成一个csv文件。

运行cmd文件,切换到存放csv的文件夹,执行以下命令:

copy *.csv all_data.csv

即将文件夹里的所有csv文件合并成all_data.csv文件。

这里写图片描述

(3)导入数据库

导入数据库我就不多讲了吧,选择合适的数据库执行导入即可(MySQL,Oracle,MongoDB等)

PS: 其实这个过程也可以编写Python脚本实现,有兴趣的可以试一下。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值