在 Python 中将 XLSX 转换为 CSV 文件

Manav Narula 2023年1月30日
  1. XLSX 和 CSV 文件格式
  2. 在 Python 中使用 Pandas 库将 XLSX 转换为 CSV 文件
  3. 在 Python 中使用 xlrdcsv 模块将 XLSX 转换为 CSV 文件
  4. 在 Python 中使用 openpyxlcsv 模块将 XLSX 转换为 CSV 文件
  5. 结论
在 Python 中将 XLSX 转换为 CSV 文件

本教程将演示在 Python 中将 XLSX 文件转换为 CSV。

XLSX 和 CSV 文件格式

excel 文件的默认格式是 XLSX。它存储所有工作簿数据以及公式、图表和其他内容。

我们还可以将 Excel 工作簿存储为 CSV 文件。

CSV 是逗号分隔的文本文件。也可以使用简单的文本编辑器访问此文本文件。

CSV 文件占用的内存更少,访问速度更快。但是,CSV 文件仅存储数据。

如果将 Excel 工作簿存储为 CSV,则所有公式、图表和数据透视表都将丢失。

XLSX 是最新的 Excel 工作簿格式。直到 Excel 2003,文件格式都是 XLS。

下面讨论的方法适用于两种文件格式。

在 Python 中使用 Pandas 库将 XLSX 转换为 CSV 文件

pandas 模块允许我们创建和使用 DataFrame 对象。数据在 DataFrame 中被组织成行和列。

我们可以使用 Pandas 库将 XLSX 和 CSV 文件读入 DataFrame。

要使用 Pandas 将 XLSX 转换为 CSV,我们会将 XLSX 文件读入 DataFrame 并将其导出为 CSV 文件。

要读取 excel 文件,我们可以使用 pandas.read_excel() 函数。这会将数据存储在 DataFrame 中。

然后,使用 pandas.to_csv() 函数将其保存为 CSV 文件。

例子:

import pandas as pd

df = pd.read_excel("sample.xlsx")
df.to_csv("sample.csv")

在 Python 中使用 xlrdcsv 模块将 XLSX 转换为 CSV 文件

xlrd 模块提供了一种读取 excel 文件的有效方法。可以使用 csv 模块将文件的内容写入 CSV 文件。

让我们讨论如何。

xlrd.open_workbook() 可用于读取 XLSX 工作簿。我们假设我们只想将工作簿的第一张表转换为 CSV。

使用 sheet_by_index() 函数访问此工作表。第一个工作表的索引为零,被传递给这个函数。

我们将使用 open() 函数创建一个 CSV 文件,并使用 csv.writer() 构造函数创建一个 writer 对象。该对象将允许我们将数据写入 CSV 文件。

我们将迭代文件中的总行数,并使用带有 writerow() 函数的 writer 对象写入每一行。我们使用 row_values() 函数获取行的内容。

我们将在下面的示例中实现这一点。

import xlrd
import csv

ob = csv.writer(open("sample.csv", "w", newline=""))
data = xlrd.open_workbook("sample.xlsx").sheet_by_index(0)
for r in range(data.nrows):
    ob.writerow(data.row_values(r))

在 Python 中使用 openpyxlcsv 模块将 XLSX 转换为 CSV 文件

openpyxl 模块在 Python 中用于对 Excel 文件执行读写操作。我们可以通过与之前类似的方法将此模块与 csv 库一起使用。

openpyxl 模块将用于使用 load_workbook() 函数读取 XLSX 文件。我们只会将当前工作表转换为 CSV。

使用 active 属性访问此工作表。

我们将使用 csv.writer 对象将此工作表的内容写入 CSV 文件,如前所述。我们将遍历工作表并使用列表推导读取行的内容。

这些内容将被写入 CSV 文件。

请参阅下面的代码。

import openpyxl
import csv

ob = csv.writer(open("sample.csv", "w", newline=""))
data = openpyxl.load_workbook("sample.xlsx").active
for r in data.rows:
    row = [a.value for a in r]
    ob.writerow(row)

结论

本教程讨论了使用 Python 将 XLSX 文件转换为 CSV 的方法。

pandas 模块提供了通过三行代码实现此目的的最简单方法。其他方法需要使用 xlrdopenpyxl 模块读取 XLSX 文件,并使用 csv 模块将它们写入 CSV 文件。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python CSV