跳至主要内容

将 Excel 转换为 CSV:4 种实用方法

了解将 Excel 转换为 CSV 的可靠方法:手动、编程式与批量转换,同时确保数据准确性、编码与安全性。
· 12分钟 阅读

使用 AI 探索

将 Excel 文件转换为 CSV 有多种方法:既可以在 Excel 内手动完成,也可以使用 Python、PowerShell 等编程方式,或通过 Google 表格等云端平台实现。虽然流程看起来简单,但编码、多工作表处理、特殊字符以及数据安全等细节,都会影响最终数据集的质量。

本文提供一份将 Excel 转换为 CSV 的完整指南。我们将探讨两种格式的结构差异、编码注意事项、手动与自动化方法、高级用例、故障排除技巧,以及一系列最佳实践,帮助您确保数据在各平台间保持准确、安全、可用。

了解文件格式架构

在开始转换之前,了解Excel 与 CSV 文件在结构与功能上的差异非常重要。掌握这些差异有助于您在转换过程中避免数据丢失、格式问题和编码错误。

Excel 与 CSV 的结构差异

Excel 文件通常以 .xlsx 或 .xls 保存,是基于二进制或 XML 的电子表格格式,可在结构化表格中存储数据,并支持公式、数据透视表、图表、单元格格式,甚至嵌入对象等功能。如果您使用过 Excel,便知道每个工作簿都可以包含多个工作表。

而 CSV(逗号分隔值)文件是一种纯文本格式,通过逗号(或分号等其他分隔符)分隔数据。每一行对应一行记录,每个逗号表示一列的边界。CSV 文件不支持公式、格式或宏;它仅以一种便于跨系统读取与处理的格式存储原始数据。

功能

Excel (.xlsx/.xls)

CSV (.csv)

结构

二进制/XML 格式

纯文本(逗号分隔)

多工作表

支持

不支持

公式与函数

支持

不支持

格式(颜色、字体、边框)

支持

不支持

文件大小

较大

较小

兼容性

需要 Excel 或兼容软件

通用可读

编码

可能不同

通常为 UTF-8 或 ANSI

转换过程中会改变什么(以及不会改变什么)

Excel 的能力远超简单的数据存储,例如宏、条件格式、图表和数据验证。然而,这些功能与 CSV 格式不兼容,意味着在转换时不会被保留。例如:

  1. 公式会被其计算后的数值替代。
  2. 图表完全丢失。
  3. 单元格格式(如颜色或边框)会被舍弃。
  4. 宏或嵌入脚本无法存储在 CSV 中。

因此,在转换前对 Excel 文件进行预处理非常重要。您应当:

  1. 确保所有公式都已计算并转换为最终数值。
  2. 移除或扁平化任何不必要的工作表或嵌入对象。
  3. 确认数据结构干净且一致(例如,无合并单元格或隐藏行)。

将 Excel 转换为 CSV 的不同方法

根据您的熟悉程度、可用工具,以及处理文件的数量不同,将 Excel 转换为 CSV 可以通过多种方式完成。您可结合自身限制选择最合适的方法。如果希望跟随我演示,您可以下载我整理的这份员工数据集。

1. 使用 Excel 的手动方法

最简单直接的方法是使用 Excel 内置的另存为功能。这种方式适合只处理一两个文件的场景。

处理单工作表工作簿

  1. 打开您的 Excel 文件,您可以使用上述数据集。
  2. 点击左上角的文件选项卡。
  3. 选择另存为(或在较新版本中选择保存副本)。
  4. 选择要保存文件的位置。
  5. 在保存类型下拉菜单中,选择CSV(逗号分隔)(*.csv)。
  6. 点击保存。

注意:使用 CSV 格式保存时,Excel 会提示某些功能可能丢失。这是正常现象,因为 CSV 仅支持原始数据。

处理多工作表工作簿

如果您的 Excel 文件包含多个工作表,请记住 CSV 每次只能保存一个工作表。若要保存所有工作表:

  • 打开 Excel 文件(例如,employee_data.xlsx)。

  • 在 Excel 底部,您会看到每个工作表的标签,例如 Sheet1、Sheet2、Sheet3。

  • 点击第一个工作表标签(例如 Sheet1)。

  • 转到文件 → 另存为。

  • 选择保存位置(例如,文档或桌面)。

  • 在保存类型下拉列表中,选择CSV UTF-8(逗号分隔)(*.csv)。

  • 在文件名字段中,为其命名为与工作表一致,例如:sales_data.csv。

  • 点击保存。Excel 会显示消息:“所选文件类型不支持包含多个工作表的工作簿。”

  • 点击确定,这是预期行为,因为 CSV 只保存一个工作表。

对其余每个工作表重复相同步骤,分别以该表名保存为单独的 CSV 文件。

为本地化设置更改 CSV 分隔符

在某些地区,CSV 使用分号(;)而非逗号(,)作为分隔符。要在 Excel 中调整:

  1. 转到文件 → 选项 → 高级。
  2. 在编辑选项下,找到使用系统分隔符。
  3. 取消勾选并指定您偏好的分隔符(逗号或分号)。

这样可确保导出的 CSV 在记事本或 Excel 等本地应用中正确打开。

2. 编程式方法

当您需要处理多个文件或大型数据集时,自动化 Excel 到 CSV 的转换能节省大量时间。以下是几种高效的编程方法。

这里我将演示如何自动将一个 Excel 工作簿中的每个工作表导出为单独的 UTF-8 编码 CSV 文件。

步骤 1:安装所需库

您只需额外安装一个库 pandas,帮助 Python 轻松处理 Excel 文件。打开命令提示符或 PowerShell 运行:

pip install pandas openpyxl

pip install pandas openpyxl to convert excel to csv

步骤 2:将所有工作表导出为 CSV

打开 IDLE 或您偏好的 Python 编辑器:

  • 按下Windows + S打开搜索。
  • 输入 IDLE(或 IDLE (Python 3.x))。

点击打开,您会看到类似如下的提示窗口:

Python 3.12.10 (tags/v3.12.10:0cc8128, Apr 8 2025)
>>>

要编写脚本,转到文件 → 新建文件,粘贴代码,然后点击运行 → 运行模块。

IDLE Shell convert excel to csv

import pandas as pd
# Load your Excel workbook
excel_file = r"C:\Users\HP\Downloads\employee_dataset.xlsx"

# Read all sheets into a dictionary
excel_data = pd.read_excel(excel_file, sheet_name=None)

# Loop through each sheet and save as a separate CSV
for sheet_name, data in excel_data.items():
    output_file = f"{sheet_name}.csv"
    data.to_csv(output_file, index=False, encoding='utf-8')
    print(f"Saved: {output_file}")

print("All sheets have been exported successfully!")

步骤 3:这里发生了什么

  • pd.read_excel(..., sheet_name=None) 会加载 Excel 文件中的所有工作表。

  • 循环会将每个工作表保存为同一文件夹中的独立 UTF-8 CSV 文件。

步骤 4:如果出现错误

若出现 FileNotFoundError,请检查:

  • Excel 文件路径是否正确。

  • 是否包含完整路径(例如 C:\Users\YourName\Downloads\employee_data.xlsx))。

  • 路径是否使用了原始字符串格式(r"...")。

该脚本:

  • 读取 Excel 工作簿中的所有工作表。
  • 将每个工作表自动转换为一个 CSV 文件。
  • 保留编码,避免特殊字符损坏。

您也可以将此方法扩展为批量转换,对文件夹中的多个 Excel 文件循环处理。

3. 使用 PowerShell 自动化

PowerShell 是所有 Windows 系统预装的命令行与脚本环境。它是无需安装额外软件即可自动化转换的优秀工具。

打开 PowerShell 的方式:

  1. 按下 Windows + S,输入 PowerShell。
  2. 点击 Windows PowerShell打开终端。

以下命令可将 Excel 转换为 CSV:

$Excel = New-Object -ComObject Excel.Application
$Workbook = $Excel.Workbooks.Open("C:\Users\YourName\Documents\employee_dataset.xlsx")
$Worksheet = $Workbook.Sheets.Item(1)
$Worksheet.SaveAs("C:\Users\YourName\Documents\employee_dataset.csv", 6)
$Workbook.Close()
$Excel.Quit()

该 PowerShell 脚本将:

  • 在后台打开 Excel。
  • 将工作簿的第一个工作表导出为 CSV 文件。
  • 保存到您选择的目录。

注意:如果工作簿包含多个工作表,请将 $Workbook.Sheets.Item(1) 修改为您想转换的表号。 您也可以将其置于循环中以进行批量转换。

4. 使用 Google 表格转换

如果您未安装 Excel 或更偏好云端工具,Google 表格提供了简便的 Excel 转 CSV 转换方式。

步骤如下:

  1. 进入 Google 表格。
  2. 点击 文件 → 打开 → 上传,上传您的 Excel 文件。
  3. 打开后,点击 文件 → 下载 → 逗号分隔值(.csv)。

这种方法可确保跨平台兼容,并自动处理 UTF-8 编码。我特别喜欢的一点是:Google 表格在云端完成转换,非常适合跨不同操作系统工作或与全球团队共享文件的用户。

编码标准与兼容性

编码不正确会导致文本不可读、符号损坏或字符被误解,尤其是在处理多语言或地区性数据时。

常见编码挑战

编码定义了字符的数字化表示方式。将 Excel 转为 CSV 时,最常见的问题之一是字符损坏:特殊或非英文字符(如“锓ü”或“ç”)在转换后显示为乱码。这通常发生在 Excel 的默认编码(常为 ANSI 或 Windows-1252)与目标系统的预期编码不匹配时。

例如,在 Windows 系统上使用 ANSI 创建的 Excel 表格,可能在本机显示正常,但在 macOS 或 Linux 打开时变得不可读。因此强烈建议使用 UTF-8 编码。UTF-8 是几乎覆盖所有书写语言的通用字符集,是 Web 与数据应用的标准。它可以确保符号、字母和特殊字符在不同环境下都能一致显示。

另一个常见挑战与特定地区的分隔符和编码默认设置有关。

  • 在美国,CSV 文件通常使用逗号(,)作为分隔符。

  • 在许多欧洲国家,则使用分号(;),因为逗号在数值中用作小数点。

这些地区默认设置在将 CSV 导入到期望不同格式的软件时,可能引发解析错误。识别并处理编码与分隔符差异,是实现可靠转换的关键。

解决编码不匹配的方法

在 Excel 到 CSV 的转换过程中,有多种方式可以处理与修正编码不匹配:

现代版本的 Excel 提供直接以 UTF-8 编码保存 CSV 的选项:

  • 打开 Excel 文件。
  • 转到 文件 → 另存为 → 浏览。
  • 在保存类型下拉列表中选择 CSV UTF-8(逗号分隔)(*.csv)。
  • 点击 保存。

对于较旧版本的 Excel:

  • 在记事本中打开 CSV。
  • 点击 文件 → 另存为。
  • 在“编码”下选择 UTF-8 并保存文件。
  • 2016 年之前的 Excel 版本没有内置 UTF-8 导出选项。
  • 您可以先保存为 CSV(逗号分隔)(*.csv),再用 记事本或 PowerShell 重新保存为 UTF-8 编码。

使用 PowerShell(Windows)自动化编码转换

如果您在 Windows 上工作,PowerShell作为预装的命令行工具,可在无需使用 Excel 的情况下快速重新编码文件。

打开 PowerShell:

  • 按下 Windows + S,输入 PowerShell,然后按 Enter。
  • 您将看到一个蓝色或黑色的终端窗口。
  • 将下方命令复制粘贴到 PowerShell 中,然后按 Enter。请记得将文件路径替换为您的实际位置。

将单个 CSV 文件转换为 UTF-8:

Get-Content "C:\path\to\file.csv" -Raw | Out-File -FilePath "C:\path\to\file_utf8.csv" -Encoding utf8

该命令会读取现有 CSV 内容,并写出一份新的 UTF-8 编码副本。这对于修复此前以本地或 ANSI 编码保存的文件尤其有用。

高级实现场景

在真实的数据工作流中,将 Excel 转换为 CSV 往往不止处理单个文件。本节将探讨高效处理这些高级转换场景的方法。

处理大规模转换

在处理大型或多个 Excel 文件时(如超过 1GB 的报告或含有数百个工作表的文件夹),手动转换已不再高效。 此时可使用 Python 或 PowerShell 进行自动化批处理。

我的建议:需要同时进行清洗、转换或编码管理的转换,请使用 Python。仅需在 Windows 本地快速自动化转换多个 Excel 为 CSV,请使用 PowerShell。对于超大规模企业数据(多 GB 级),可考虑ETL 工具,如 Apache NiFi、Alteryx 或 KNIME,以获得可扩展且性能优化的工作流。

动态提取工作表

许多 Excel 工作簿包含多个工作表。由于 CSV 每个文件仅存储一个工作表,因此需要分别保存。

一些最佳实践:

  • 将每个工作表导出为独立 CSV,并按其工作表名称命名。
  • 用 Python 或 PowerShell 自动化时,采用命名规范将工作表名中的空格替换为下划线(例如 Employee_Dataset.csv)。
  • 将生成的 CSV 存放在专用文件夹中,便于查阅。

保留特殊字符与数据质量

若编码不一致,带重音的字符(é、ñ)、货币符号(£、₦、€)或非拉丁文字可能会丢失或显示错误。

一些最佳实践:

  1. 始终以 UTF-8 编码导出: 无论使用 Excel、PowerShell 还是 Python,保存 CSV 时请确保指定 encoding='utf-8'。
  2. 在转换前后验证编码: 可在记事本中打开 CSV,通过另存为查看并确认编码为 UTF-8。
  3. 避免手动复制粘贴: 从 Excel 手动复制到 CSV 往往会引入隐藏格式或字符错误。

故障排除与优化

即便使用最佳工具和方法,Excel 到 CSV 的转换有时仍会遇到问题,从字符损坏到分隔符不匹配,或数据不完整。本节将帮助您识别、修复与预防常见问题,同时提升转换速度与可靠性。

常见陷阱与解决方案

以下列出转换过程中最常见的一些问题及其高效解决方法。我会为每个问题选择我认为最简单、最直接的处理方式:

问题快速修复
1. 字符损坏或乱码在 Excel 中以 CSV UTF-8 格式保存(文件 → 另存为 → CSV UTF-8)。
2. 数据缺失或被截断保存前确保处于正确的工作表。只有活动工作表会被导出。
3. 分隔符不正确在 Excel 中:文件 → 选项 → 高级 → 编辑选项 → 取消勾选“使用系统分隔符”,然后设置 Decimal = . 和 Thousands = ,。
4. 大文件无法保存或打开使用 Python 拆分大文件:python<br>chunks = pd.read_excel("large.xlsx", chunksize=50000)<br>for i, c in enumerate(chunks):<br> c.to_csv(f"part_{i+1}.csv", index=False)<br>
5. PowerShell 中编码不匹配在命令中添加 -Encoding UTF8:powershell<br>Export-Csv -Path "output.csv" -Encoding UTF8 -NoTypeInformation<br>

性能对比

性能会因文件大小、系统资源与转换方法而异。以下是基于真实测试的实用对比:

方法

最佳适用场景

速度

数据安全性

自动化程度

Excel(手动)

小文件(<50 MB)

中等

高(正确操作时)

低

PowerShell(脚本)

Windows 上的批量转换

快

高

高

Python(pandas)

大型数据集/需转换处理

非常快

极高

极高

Google 表格(云端)

协作与远程访问

中等

高

中等

结语

将 Excel 转换为 CSV 看似简单,但要做到正确、安全、高效,才能确保数据保持一致、兼容,并随时可用于分析或集成。无论是跨系统共享数据集、为机器学习流水线提供数据,还是自动化工作流,掌握这一流程都能为您节省时间与精力。

现在轮到您了,打开 Excel 开始尝试吧!试着将文件保存为 CSV 格式,测试不同编码选项,甚至自动化一些简单的转换。

若您希望强化数据处理与分析技能,可探索我们的资源:在 Excel 中进行数据可视化、在 Excel 中进行数据分析,以及CSV 与 Excel:为您的数据项目做出正确选择。

Jachimma Christian

作者

Jachimma Christian

数据分析师与分析导师,专长于 Excel、SQL 和 Python。专注于可转化为行动的洞察力,我帮助各类规模的企业推动有意义的变革,同时激励新晋数据学习者在他们的学习旅程中不断前行。

FAQs

将 Excel 转换为 CSV 的最佳工具有哪些?

最常见的工具包括 Microsoft Excel、Google 表格、Python 库(如 pandas)以及用于自动化的 PowerShell。根据您的用例与数据规模,它们都能有效完成任务。

如何自动化将多个 Excel 文件转换为 CSV?

您可以使用 Python 脚本或 PowerShell 命令来自动化批量转换。这些方法可同时处理多个文件,减少手动工作并保持一致性。

将 Excel 转换为 CSV 时有哪些常见问题?

常见问题包括编码错误、因不受支持的功能(如公式或宏)导致的数据丢失,以及分隔符不匹配。请务必验证 UTF-8 编码,并在转换前简化数据。

将 Excel 转换为 CSV 时如何处理特殊字符?

请使用 UTF-8 编码导出文件,以保留特殊或非 ASCII 字符。在 Excel 中保存时选择 CSV UTF-8(逗号分隔)。在 Python 中写入 CSV 时使用 encoding='utf-8'。

我可以用 Python 将 Excel 转换为 CSV 吗?

可以。Python(尤其结合 pandas 与 openpyxl 库)非常适合转换工作。它对自动化、多工作表处理和大型数据集都很高效。

主题