将 Excel 文件副本制作为 CSV,而无需让 Excel 将文件“重新打开”为 CSV

将 Excel 文件副本制作为 CSV,而无需让 Excel 将文件“重新打开”为 CSV

我有几十个 Microsoft Excel 文件xlsx。这些文件是用于编辑的“主”副本,包含各种格式,以便于编辑。

但是,这些文件中的数据以 CSV 的形式导入到 CMS 中,所以最终我需要生成 CSV 文件。

为了生成 CSV 文件,这是我目前所做的。

  1. 单击File功能区。
  2. 点击Save as
  3. 选择CSV UTF-8
  4. 点击Save

但是,当我这样做时,Excel 会自动关闭文件xlsx并打开新CSV UTF-8文件。这是一个问题,因为格式仍然存在,所以它看起来喜欢该xlsx文件,有时当需要对主文件进行更改时,我会对 CSV 文件进行其他更改。

现在,我已经养成了习惯,在导出后非常小心地关闭 CSV,然后重新打开文件,xlsx以防止这种错误。

如何从xlsx文件生成 CSV 文件,而无需 Excel 关闭该xlsx文件并打开 CSV 文件?

编辑

这些xlsx文件存储在 Google Drive 中,有时用户会通过 Google Sheets 更新它们。因此我无法转换,xlsm因为这样文件将无法再在 Sheets 中编辑。

答案1

如果没有 VBA 或插件,就无法改变 Excel 的行为。

以下插件可能会有所帮助:

但也许最好避免在 Excel 中执行“另存为”,而是使用 PowerShell 脚本执行。这样,您还可以使用一个脚本保存多个 Excel 工作表。

以下是 PowerShell 函数的示例(完全未经测试):

Function ExcelToCsv ($File) {
    $myDir = "D:\Excel"
    $excelFile = "$myDir\" + $File + ".xlsx"
    $Excel = New-Object -ComObject Excel.Application
    $wb = $Excel.Workbooks.Open($excelFile)
    foreach ($ws in $wb.Worksheets) {
        $ws.SaveAs("$myDir\" + $File + ".csv", 6)
    }
    $Excel.Quit()
}

用法示例(未经测试):

$FileName = "\path\to\workbook"
ExcelToCsv -File $FileName

相关内容