Excel工作簿是常用的表格格式,许多数据呈现、数据分析和数据汇报都是以Excel工作表的形式进行。然而,在实际的数据管理、分析或自动化流程构建过程中,我们常常需要将这些Excel中的数据迁移至更其他数据系统,或者以文本形式存储以便与其他程序进行交互。Python作为一种强大且灵活的编程语言,能够高效地实现这一目标。本文将演示如何运用Python编程语言,将Excel工作表中的丰富数据导入到CSV、XML或文本中,我们也可以使用文中的方法读取数据并写入到其他文件或数据系统中。
本文所使用的方法需要用到Spire.XLS for Python,可从官网获取或通过PyPI:pip install Spire.XLS
。
示例Excel文件
直接将Excel工作表转换为CSV
使用此API,我们可以直接获取指定工作表并转换为CSV文件。以下是操作步骤:
- 导入所需模块。
- 创建
Workbook
类的对象wb
。 - 使用
wb.LoadFromFile()
方法加载指定路径下的Excel文件。 - 获取指定索引位置处的工作表
ws
。 - 使用
Worksheet.SaveToFile(string fileName, string Separator, Encoding)
方法将工作表转换为CSV文件并保存。 - 释放资源。
代码示例
from spire.xls import *
from spire.xls.common import *
# 创建 Workbook 对象
wb = Workbook()
# 加载 Excel 文件
wb.LoadFromFile("示例.xlsx")
# 获取工作表
ws = wb.Worksheets.get_Item(0)
# 将工作表保存为 CSV 文件
ws.SaveToFile(f"output/{
ws.Name}.csv", ",", Encoding.get_UTF8())
wb.Dispose()
提取结果
读取Excel工作表数据保存到CSV
除了直接转换外,我们还可以直接读取指定单元格范围的数据,并写入CSV文件,来实现自定义的数据提取。以下是操作步骤:
- 导入所需模块。
- 创建
Workbook
类的对象wb
。 - 使用
wb.LoadFromFile()
方法加载指定路径下的Excel文件。 - 获取指定索引位置处的工作表
ws
。 - 确定工作表的已使用范围(即有数据的部分)作为
usedRange
。 - 遍历
usedRange
中的每一行和每一列:- 获取单元格的值,并对包含逗号的字符串单元格值添加双引号。
- 将处理过的单元格值添加到
rowData
列表中。
- 对每一行的
rowData
列表进行处理,将其转换为逗号分隔的字符串,并在末尾添加换行符,然后将结果追加到data
字符串中。 - 打开一个CSV文件(以当前工作表名称命名),以写模式和UTF-8编码将
data
字符串内容写入该文件。 - 使用
wb.Dispose()
方法释放资源,清理内存。
代码示例
from spire.xls import *
from spire.xls.common import *
# 创建 Workbook 对象
wb = Workbook()
# 加载 Excel 文件
wb.LoadFromFile("示例.xlsx")
# 获取工作表
ws = wb