在我的场景中,有一些我将经常更新的 excel 文件(每个文件可能有多个工作表),并且几乎同样频繁地将哪些内容导入到 PostgreSQL 数据库中.此数据库管理器不直接使用 .xlsx
文件,因此我需要先将我的 .xlsx
导出为 .csv
,然后再导入.csv
到数据库中。
我研究了有关该主题的不同问题,但我认为没有任何问题真正解决了我的问题。我不是在寻找可以解决这种情况的简单代码(尽管那会很好),而是关于如何处理解决方案的一般方向(VBA、Java/C#/Python 程序、.bat
可执行...)。
我们非常欢迎任何帮助。
旁注:
- 使用 PostgreSQL 作为 DBM 并不是我的决定,我知道还有其他 DBM 可以很好地处理 excel 文件。
- 我还没有学过 VBA,但如果需要,我可以以此为借口开始学 VBA。
- 我知道 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/