python - 将整个 Excel 文件导出为 CSV

标签 python excel vba postgresql csv

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

我研究了有关该主题的不同问题,但我认为没有任何问题真正解决了我的问题。我不是在寻找可以解决这种情况的简单代码(尽管那会很好),而是关于如何处理解决方案的一般方向(VBA、Java/C#/Python 程序、.bat 可执行...)。

我们非常欢迎任何帮助。

旁注:

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

最佳答案

因此,使用 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)

关于python - 将整个 Excel 文件导出为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40376049/

相关文章:

python - builtin_function_or_method' 对象没有属性 shuffle

python - 如何将具有打包列和行名称的数据帧连接到未打包的数据帧

excel - 如果在需要字符串的地方提供了数字,则类型不匹配 - Excel VBA

Excel VBA XL4 应用程序级别定义的名称

excel - 隐藏行或列时在 Excel VBA 中触发事件

python - 按多个键分组并汇总/平均字典列表的值

python - 使用python执行sql-server事务

c# - 打开 XML : How to add rows and cell value after appending new sheet in existing Excel file using c#

Excel Count If 函数与附加范围

vba - 在 Solidworks 中选择 VBA 中的特定 View