我有几十个 Microsoft Excel 文件xlsx
。这些文件是用于编辑的“主”副本,包含各种格式,以便于编辑。
但是,这些文件中的数据以 CSV 的形式导入到 CMS 中,所以最终我需要生成 CSV 文件。
为了生成 CSV 文件,这是我目前所做的。
- 单击
File
功能区。 - 点击
Save as
。 - 选择
CSV UTF-8
。 - 点击
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 的行为。
以下插件可能会有所帮助:
- XL工具(商业的)
- excel-csv-导入
- CSV 导入+导出
但也许最好避免在 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