乐于分享
好东西不私藏

操作Excel常用的Python库

操作Excel常用的Python库

点击上方 蓝字关注我吧!

在Python中,有多种库可以用来读写Excel文件,每种库都有其特点和适用场景。以下是一些推荐的Python库,用于Excel文件的读写操作。

  • pandas

pandas是一个非常强大的数据分析库,它提供了read_excel()函数来读取Excel文件,并返回一个DataFrame对象,方便后续的数据处理和分析。同样,pandas也提供了to_excel()函数将DataFrame对象写入Excel文件。pandas默认使用openpyxl或xlrd/xlwt作为Excel文件的读写引擎(取决于安装的库和文件类型)。

  • openpyxl

openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它提供了完整的API来操作Excel文件,包括工作簿、工作表、单元格、图表等。openpyxl不依赖Microsoft Excel,可以在没有安装Excel的服务器上使用。

  • xlrd/xlwt

xlrd是一个用于读取Excel文件的库,支持xls和xlsx格式。xlwt是一个用于写入Excel文件的库,但仅支持xls格式(对于xlsx格式,需要使用xlsxwriter库)。

注意:xlrd库在较新版本中已经不再支持xlsx格式的读取,因此如果需要处理xlsx文件,建议使用openpyxl或pandas配合xlsxwriter库。

  • xlsxwriter

xlwings是一个用于与Excel交互的库,支持读写Excel文件,并可以与Excel VBA进行交互。它提供了一个方便的API来操作Excel文件,可以与matplotlib、numpy和pandas等库无缝集成。xlwings支持Windows和macOS平台,可以操作Excel或WPS电子表格软件。

  • pywin32(包含win32com)

pywin32是一个Python扩展模块,用于提供对Windows API的访问。其中的win32com模块可以用于与Excel进行交互,实现Excel文件的读写操作。

注意:win32com是Windows平台特有的,并且可能需要一些配置才能正常工作。

在选择库时,请根据具体需求和使用的操作系统进行选择。对于大多数数据分析和数据处理任务,pandas和openpyxl的组合是一个很好的选择。如果需要与Excel VBA进行交互或需要更高级的Excel特性支持,可以考虑使用xlwings。

有这么多操作Excel的Python库,该如何选择呢?

可以向GodeGeeX提问:你是一名Python办公自动化的专家,现在需要通过Python操作Excel,请推荐一个Python库,能实现的功能最全,并且可以处理复杂的Excel文件,你推荐哪一个库?如图所示,CodeGeeX推荐的是xlwings库。

xlwings库安装

使用pip命令可安装xlwings库,具体操作可以在VS Code的终端(terminal)中执行,如图所示,参考代码如下:

pip install xlwings

创建和保存Excel

首先,学习如何使用xlwings库创建和保存Excel。向CodeGeeX提问:如何在xlwings中创建和保存Excel?

CodeGeeX的反馈如下:可以使用以下Python代码来创建和保存Excel文件,将CodeGeeX反馈代码中的路径修改为本地实际路径。

import xlwings as xw

#创建一个新的工作簿
wb = xw.Book()

# 选择活动工作表
ws = wb.sheets.active

# 写入数据
ws.range('A1').value = 'HELLO'
ws.range('B1').value = 'WORLD'

# 保存工作簿
wb.save('example.xlsx')

# 关闭工作簿
wb.close()

运行成功后,在代码指定路径中生成了一个example1.xlsx文件,打开后如图所示。

读取和写入Excel

继续向CodeGeeX提问:读取刚才创建的Excel文件里的内容,并在一个区域写入内容。

CodeGeeX的反馈如下:要读取刚才创建的Excel文件里的内容,并在一个区域写入内容,你可以使用xlwings库的range()方法来选择单元格,并使用value属性来读取和写入数据。

import xlwings as xw

# 打开之前保存的工作簿
wb = xw.Book('E:\CODE\example.xlsx')

# 选择活动工作表
ws = wb.sheets.active

# 读取单元格A1和B1的值
cell_a1 = ws.range('A1').value
cell_b1 = ws.range('B1').value

# 打印读取的值
print(f'单元格A1的值是:{cell_a1}')
print(f'单元格B1的值是:{cell_b1}')

# 在A2:B2区域写入新内容
ws.range('A2:B2').value = ['NEW''CONTENT']

# 保存并关闭工作簿
wb.save()
wb.close()

运行后结果如图所示。

操作工作表

继续向CodeGeeX提问:新建一个名为“New Sheet”的工作表,并删除example1.xlsx的Sheet1工作表。

CodeGeeX的反馈如下:要新建一个名为“New Sheet”的工作表,并删除名为“Sheet1”的工作表,你可以使用xlwings库的add()方法和delete()方法。

import xlwings as xw

# 打开工作簿
wb = xw.Book('E:\CODE\example.xlsx')

# 添加一个新的工作表
ws = wb.sheets.add(name="New Sheet")

# 删除一个工作表
wb.sheets['Sheet1'].delete()

# 保存并关闭
wb.save()
wb.close()

运行结果如图所示。

公式与图表

继续向CodeGeeX提问:在“New Sheet”工作表中填入一些示例数据,编写计算公式并创建一个柱状图。

CodeGeeX的反馈如下:在“New Sheet”工作表中填入数据,并使用xlwings库写入公式和生成图表,可以通过选择单元格并设置value属性来填充数据,使用formula属性来输入公式,再通过创建图表并设置数据源来生成可视化效果。

import xlwings as xw

# 打开工作簿
wb = xw.Book('E:\CODE\example.xlsx')
ws = wb.sheets['New Sheet']

# 在工作表中添加数据
data = [
    ['姓名','年龄'],
    ['张三'20],
    ['李四'25],
    ['王五'30],
    ['赵六'35]
]

ws.range('A1').value = data

ws.range('C1').formula = '=SUM(B2:B5)'# 计算年龄总和

chart = ws.charts.add()      #创建一个新图表
chart.set_source_data(ws.range('A1:B5')) #设置图表数据源
chart.chart_type = 'line'#设置图表类型为折线图
wb.save()  # 保存工作簿
wb.close() # 关闭工作簿

运行结果如图所示:

下期更新:Excel批量转PDF:对外发送更友好

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 操作Excel常用的Python库

猜你喜欢

  • 暂无文章