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

python 给excel 单元格赋值 python填excel_excel

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

读取 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 中总列数。