如何在 Python 中将 XLSX 转换为 CSV 文件

XLSX (Excel Open XML Spreadsheet) 文件是 Microsoft Excel 中的一种电子表格文件格式,而 CSV (Comma Separated Values) 文件则是一种文本格式,用于存储表格数据。通常情况下,CSV 文件比 XLSX 文件更易于处理和读取,因为它可以被多种程序和编程语言快速解析。

在 Python 中,我们可以使用 openpyxl 库来读取和写入 XLSX 文件,使用 csv 库来读取和写入 CSV 文件。下面是将 XLSX 文件转换成 CSV 文件的详细步骤:

  1. 安装 openpyxl 和 csv 库:
pip install openpyxl
pip install csv
  1. 导入库:
import openpyxl
import csv
  1. 使用 openpyxl 库打开 XLSX 文件:
workbook = openpyxl.load_workbook('example.xlsx')
  1. 选择要读取的工作表:
sheet = workbook.active

如果要选择特定的工作表,可以使用以下代码:

sheet = workbook['Sheet1']
  1. 遍历工作表中的每一行,并将其写入 CSV 文件:
with open('example.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    for row in sheet.iter_rows():
        writer.writerow([cell.value for cell in row])

在上面的代码中,我们使用 csv.writer() 方法将数据写入 CSV 文件中。请注意,open() 函数中的 newline=” 参数用于避免在写入文件时添加额外的空行。

  1. 完整代码示例:
import openpyxl
import csv

workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active

with open('example.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    for row in sheet.iter_rows():
        writer.writerow([cell.value for cell in row])

注意事项:

  1. CSV 文件是以逗号分隔的文本文件,每一行表示数据的一条记录,每一列用逗号分隔。如果您要使用不同的分隔符,可以在 csv.writer() 函数中指定 delimiter 参数。

例如,如果您想使用制表符作为分隔符:

writer = csv.writer(csvfile, delimiter='\t')
  1. 在读取和写入文件时,请确保文件的编码格式与 Python 程序相同,避免出现乱码。
  2. 如果您的 XLSX 文件中包含多个工作表,请根据需要选择要读取的工作表。如果要读取所有的工作表,请使用 workbook.worksheets 属性。
  3. 在读取 XLSX 文件时,请确保您的 Python 版本和 openpyxl 版本兼容。建议使用最新的 openpyxl 版本。
  4. 在写入 CSV 文件时,请注意数据类型转换,例如将日期转换为字符串格式,避免写入 CSV 文件时出现错误。