将整个Excel文件导出为CSV

时间:2016-11-02 09:07:58

标签: python excel vba postgresql csv

在我的场景中,有一些excel文件(每个文件可能有多个工作表)我将经常更新,哪些内容几乎要频繁地导入 PostgreSQL 数据库。此数据库管理器不能直接使用.xlsx文件,因此我需要先将.xlsx导出为.csv,然后将.csv导入数据库。

我已经研究了关于这个主题的不同问题,但我认为他们中的任何一个都没有真正解决我的问题。我不是在寻找一个可以解决这种情况的简单代码(虽然这会很棒)但是关于如何处理解决方案的一般方向(VBA,Java / C#/ Python程序,.bat可执行文件。 ..)。

任何帮助都将受到欢迎。

附注:

  1. 我决定使用PostgreSQL作为DBM,我知道还有其他DBM可以很好地处理excel文件。
  2. 我还没有学过VBA,但如果需要,我可以很好地利用这个作为开始这样做的借口。
  3. 我知道FDW的存在,但我没有找到.xlsx的任何内容(知道如何扩展Excel的使用是非常令人惊讶的)。为.xlsx文件格式编写一个可能是一个选项,但我真的想避免这种情况,因为我可能有点短时间,我猜它会需要很多。

1 个答案:

答案 0 :(得分:1)

因此,使用VBA,您可以执行以下操作:

  • 遍历Excel应用程序中的每个工作表。
  • 将其另存为CSV 文件。

这样的事情可以完成工作:

Sub vba_code_to_convert_excel_to_csv()

    Dim ws                  As Worksheet
    Dim l_counter           As Long

    For Each ws In ThisWorkbook.Sheets
        l_counter = l_counter + 1
        ws.Activate
        ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\new_file" & l_counter & ".csv", FileFormat:=xlCSV, CreateBackup:=False
    Next ws

End Sub

重要编辑:

在使用代码之前,请确保进行保存。因为它会更改Excel选项卡的名称。在此处阅读更多内容:http://windowssecrets.com/forums/showthread.php/33489-Sheet-name-changes-when-saved-in-CSV-format-(XL2000)