点击上方蓝字 关注大侠之运维
后台回复99.99% 获取运维干货物
在 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时,有几个高级玩法是值得注意的:
合并单元格:在excel中,可以通过将多个单元格合并为一个单元格来达到较好的布局效果。使用Python的库,你可以轻松实现这一操作。
插入图片:如果你想在excel文件中插入图片,可以使用Python的库来实现。你可以设置图片的位置、大小等属性。
插入公式:如果你想在excel中使用公式,可以使用Python的库来实现。你可以设置公式的类型、范围等属性。
自定义样式:你可以使用Python的库来定义excel中单元格的样式,包括字体、颜色、边框等。
读写保护:如果你想设置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 中总列数。
👆点击查看更多内容👆
推荐阅读
记得星标记一下,下次更容易找到我