python自动操作excel,看这篇就好了

在 Python 中操作excel的方法有很多,你可以使用 xlwt、openpyxl、pyexcel 等库来实现。

在这里插入图片描述

先来看下一些简单的操作:

读取 Excel 文件:

import openpyxl

# 读取 Excel 文件
wb = openpyxl.load_workbook('example.xlsx')

# 获取所有工作表名称
print(wb.get_sheet_names())

# 获取指定工作表
sheet = wb.get_sheet_by_name('Sheet1')

# 读取单元格内容
print(sheet['A1'].value)

# 迭代读取所有行
for row in sheet.rows:
    for cell in row:
        print(cell.value)

# 迭代读取所有列
for column in sheet.columns:
    for cell in column:
        print(cell.value)

写入 Excel 文件:

import openpyxl

# 创建工作簿
wb = openpyxl.Workbook()

# 获取活动工作表
sheet = wb.active

# 写入单元格内容
sheet['A1'] = 'hello'

# 向下插入一行
sheet.append([1, 2, 3])

# 保存文件
wb.save('example2.xlsx')

下面这部分是一些高级的玩法,主要包括如下:

Python中有很多库可以帮助你操作excel文件,如xlrd、xlwt、openpyxl等。这些库可以帮助你实现读取、修改、创建、写入等功能。

在使用这些库操作excel时,有几个高级玩法是值得注意的:

  1. 合并单元格:在excel中,可以通过将多个单元格合并为一个单元格来达到较好的布局效果。使用Python的库,你可以轻松实现这一操作。

  2. 插入图片:如果你想在excel文件中插入图片,可以使用Python的库来实现。你可以设置图片的位置、大小等属性。

  3. 插入公式:如果你想在excel中使用公式,可以使用Python的库来实现。你可以设置公式的类型、范围等属性。

  4. 自定义样式:你可以使用Python的库来定义excel中单元格的样式,包括字体、颜色、边框等。

  5. 读写保护:如果你想设置excel文件的读写保护,可以使用Python的库来实现。你可以设置密码、保护范围等属性。

python合并单元格

在 Python 中合并单元格的方法有很多,你可以使用 xlwt、openpyxl、pyexcel 等库来实现。

例如,使用 xlwt 库可以这样写:

import xlwt

# 创建工作薄
workbook = xlwt.Workbook()
# 创建工作表
worksheet = workbook.add_sheet('Sheet1')

# 合并单元格
worksheet.write_merge(0, 0, 0, 3, '合并单元格')

# 保存文件
workbook.save('merge.xls')

使用 openpyxl 库可以这样写:

import openpyxl

# 创建工作薄
workbook = openpyxl.Workbook()
# 创建工作表
worksheet = workbook.active

# 合并单元格
worksheet.merge_cells('A1:D1')
worksheet['A1'] = '合并单元格'

# 保存文件
workbook.save('merge.xlsx')

使用 pyexcel 库可以这样写:

import pyexcel

# 创建数据
data = [['合并单元格', '', '', '']]

# 保存文件
pyexcel.save_as(array=data, dest_file_name='merge.xls')

python 插入图片

在 Python 中使用 openpyxl 库可以很方便地插入图片到 Excel 文档中。

首先,你需要安装 openpyxl 库,可以使用命令 “pip install openpyxl” 来安装。

然后,你可以使用以下代码将图片插入到 Excel 文档的第一个单元格中:

from openpyxl import Workbook
from openpyxl.drawing.image import Image

# 创建一个工作簿
wb = Workbook()

# 获取当前活动的工作表(即第一个工作表)
ws = wb.active

# 创建一个图片对象
img = Image('path/to/image.jpg')

# 将图片插入到第一个单元格
ws.add_image(img, 'A1')

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

你也可以指定图片的大小和位置,例如:

from openpyxl import Workbook
from openpyxl.drawing.image import Image

# 创建一个工作簿
wb = Workbook()

# 获取当前活动的工作表(即第一个工作表)
ws = wb.active

# 创建一个图片对象
img = Image('path/to/image.jpg')

# 设置图片的宽度和高度
img.width = 100
img.height = 100

# 将图片插入到第一个单元格
ws.add_image(img, 'A1')

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

你还可以使用更多的参数来控制图片的位置和大小,例如:

  • anchor:指定图片的插入位置

  • width:指定图片的宽度

  • height:指定图片的高度

  • x_offset:指定图片相对于插入位置的横向偏移量

  • y_offset:指定图片相对于插入位置的纵向偏移量

例如,要将图片插入到单元格 D4 中,并调整图片的大小和位置,可以使用以下代码:

worksheet.insert_image('D4', 'image.jpg', {'width': 200, 'height': 100, 'x_offset': 20, 'y_offset': 20})

这样就可以将图片插入到单元格 D4 中,并将图片的宽度调整为 200 像素,高度调整为 100 像素,横向偏移 20 像素,纵向偏移 20 像素。

python插入公式

可以使用 openpyxl 库中的 write_formula 方法来插入公式。例如

from openpyxl import Workbook

# 创建工作簿
wb = Workbook()

# 激活工作表
ws = wb.active

# 在单元格 A1 中写入公式
ws['A1'] = '=SUM(B1:B10)'

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

上面的代码会在 A1 单元格中插入一个求和公式,求 B1 到 B10 单元格的和。

**python自定义样式
**

可以使用 add_table_style 函数来自定义表格样式。

例如,下面的代码可以自定义一个表格样式,使表格的前两行为灰色背景,第一列为黄色背景,并设置表格边框为粗边框:

from openpyxl.styles import Color, PatternFill, Border, Side

def add_table_style(ws):
    # 设置前两行背景色为灰色
    for row in range(1, 3):
        for col in range(1, ws.max_column + 1):
            cell = ws.cell(row=row, column=col)
            cell.fill = PatternFill("solid", fgColor=Color("A0A0A0"))
    # 设置第一列背景色为黄色
    for row in range(1, ws.max_row + 1):
        cell = ws.cell(row=row, column=1)
        cell.fill = PatternFill("solid", fgColor=Color("FFFF00"))
    # 设置表格边框为粗边框
    thin_border = Border(left=Side(border_style="thin"), 
                         right=Side(border_style="thin"), 
                         top=Side(border_style="thin"), 
                         bottom=Side(border_style="thin"))
    thick_border = Border(left=Side(border_style="thick"), 
                         right=Side(border_style="thick"), 
                         top=Side(border_style="thick"), 
                         bottom=Side(border_style="thick"))
    for row in range(1, ws.max_row + 1):
        for col in range(1, ws.max_column + 1):
            cell = ws.cell(row=row, column=col)
            cell.border = thick_border

然后,在写入数据之前调用 add_table_style 函数即可。

例如:

# 自定义表格样式
table_style = TableStyle([
    ('FONTNAME', (0, 0), (-1, 0), 'Heiti TC'),  # 设置第一行字体
    ('TEXTCOLOR', (0, 0), (-1, 0), colors.red),  # 设置第一行字体颜色
    ('ALIGN', (1, 0), (1, -1), 'RIGHT'),  # 设置第二列居右
    ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),  # 设置垂直居中
    ('GRID', (0, 0), (-1, -1), 1, colors.black)  # 设置表格框线
])

# 应用样式
table.setStyle(table_style)

python对excel读写保护

可以使用 openpyxl 库中的 sheet 对象的 sheet_properties 属性来控制工作表的读写保护。

例如:

from openpyxl import Workbook

# 创建工作簿
wb = Workbook()

# 获取活动工作表
ws = wb.active

# 设置工作表的读写保护
ws.sheet_properties.sheet_protection.enable()

# 设置密码
ws.sheet_properties.sheet_protection.password = 'password'

# 其他操作

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

不同模块使用方法汇总:

xlrd 是一个用于读取 Excel 文件的 Python 库。它支持读取 xls 和 xlsx 格式的文件,并提供了许多方便的方法来访问 Excel 文件中的数据。

常用的方法包括:

  • open_workbook(filename):打开一个 Excel 文件并返回一个 workbook 对象。

  • sheet_by_index(index):通过索引获取 workbook 中的 sheet 对象。

  • sheet_by_name(name):通过名称获取 workbook 中的 sheet 对象。

  • cell(row, col):获取 sheet 中指定行和列的单元格对象。

  • row(rowx):获取 sheet 中指定行的所有单元格对象。

  • col(colx):获取 sheet 中指定列的所有单元格对象。

  • cell_value(row, col):获取 sheet 中指定行和列的单元格的值。

  • nrows:获取 sheet 中总行数。

  • ncols:获取 sheet 中总列数。

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

若有侵权,请联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值