Python与excel交互(xlwt库和openpyxl库的使用)

xlw库介绍

xlwt是用于在Python中操作Excel文件的第三方库,主要用于创建和写入Excel文件(xls格式)。
使用xlwt可以方便地设置单元格的样式,像设置字体(如字体大小、颜色等)、对齐方式(水平和垂直对齐)和边框等。还能灵活控制工作表的行高和列宽,以满足不同数据展示的需求。在数据写入方面,可以向单元格写入文本、数字等各种类型的数据,也可以把整个列表或者数组的数据批量写入工作表。

xlw库使用

  1. 创建一个新的工作簿 workbook = xlwt.Workbook()
  2. 添加一个工作表 worksheet = workbook.add_sheet('Sheet1')
  3. 保存工作簿 workbook.save('example.xls')
  4. 写入数据到单元格 (行row, 列col, 数据label) worksheet.write(0, 0, 'Hello')
  5. 创建一个样式 style = xlwt.XFStyle()
  6. 设置字体
 font = xlwt.Font() font.name = 'Times New Roman' font.bold =
 True style.font = font
  1. 写入数据到单元格并应用样式
 worksheet.write(0, 0, 'Hello', style)
    worksheet.write(0, 1, 'World', style)
  1. 合并单元格 (开始行firstrow, 结束行lastrow, 开始列firstcol, 结束列lastcol,数据label)
 worksheet.write_merge(0, 1, 0, 1, 'MergedCells')
  1. 设置列宽 (列索引, 宽度) worksheet.col(0).width = 256 * 20 # 20个字符宽度
  2. 设置行高 (行索引, 高度)
worksheet.row(0).height_mismatch = True
worksheet.row(0).height = 20 * 20  # 20个点高度

注意事项 xlwt只能创建.xls格式的文件,不支持.xlsx格式。如果你需要创建.xlsx文件,可以使用openpyxl库。

xlwt不支持读取Excel文件,只支持写入。如果你需要读取Excel文件,可以使用xlrd库。

Openpyxl库介绍

openpyxl是一个用于读写Excel文件( .xlsx 、 .xlsm 、 .xltx 、 .xltm )的Python库。
它可以创建新的Excel文档,也能读取和修改已有的文档。
在操作Excel文件的单元格、行和列方面功能强大。可以方便地访问单元格的值,设置单元格的格式,如字体、颜色、对齐方式等。而且还支持对工作表进行插入、删除行列等操作。

Openpyxl库常用操作

官方使用教程文档

  1. Openpyxl导入
from openpyxl import Workbook
  1. 创建一个新的工作簿
wb = Workbook()
  1. 获取默认的工作表
ws = wb.active
  1. 保存工作簿
wb.save("example.xlsx")
  1. 打开一个现有的工作簿
from openpyxl import load_workbook
wb = load_workbook("example.xlsx")
  1. 获取默认的工作表
ws = wb.active
  1. 创建一个新的工作表
ws1 = wb.create_sheet("Sheet1")
  1. 选择一个现有的工作表
ws2 = wb["Sheet1"]
  1. 写入单个单元格
ws['A1'] = 42
  1. 写入一行数据
ws.append([1, 2, 3, 4, 5])
  1. 写入多行数据
data = [
    ['Name', 'Age', 'City'],
    ['Alice', 30, 'New York'],
    ['Bob', 25, 'Los Angeles']
]

for row in data:
    ws.append(row)
  1. 读取单个单元格
value = ws['A1'].value
  1. 读取一行数据
row_data = [cell.value for cell in ws[1]]
  1. 读取多行数据
for row in ws.iter_rows(min_row=2, max_row=3, min_col=1, max_col=3):
    row_data = [cell.value for cell in row]
    print(row_data)
  1. 合并单元格
ws.merge_cells('A1:C1')
  1. 拆分单元格
ws.unmerge_cells('A1:C1')

from openpyxl.styles import Font, Color, PatternFill, Border, Side, Alignment
  1. 设置字体
ws['A1'].font = Font(name='Calibri', size=12, bold=True, italic=True, color='FF0000')
  1. 设置填充
ws['A1'].fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')
  1. 设置边框
border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))
ws['A1'].border = border
  1. 设置对齐方式
ws['A1'].alignment = Alignment(horizontal='center', vertical='center')
  1. 插入行
ws.insert_rows(2)
  1. 插入列
ws.insert_cols(2)
  1. 删除行
ws.delete_rows(2)
  1. 删除列
ws.delete_cols(2)
  1. 保存工作簿
wb.save("example.xlsx")

Openpyxl高级使用

1.处理公式

# 写入公式
ws['A1'] = "=SUM(B1:B10)"

# 读取公式
formula = ws['A1'].value

2.处理图表

from openpyxl.chart import BarChart, Reference
# 创建数据
ws.append(['Category', 'Value'])
ws.append(['A', 10])
ws.append(['B', 20])
ws.append(['C', 30])

# 创建图表
chart = BarChart()
data = Reference(ws, min_col=2, min_row=1, max_row=4, max_col=2)
categories = Reference(ws, min_col=1, min_row=2, max_row=4)
chart.add_data(data, titles_from_data=True)
chart.set_categories(categories)

# 添加图表到工作表
ws.add_chart(chart, "E5")

3.处理日期

from datetime import datetime

# 写入日期
ws['A1'] = datetime.now()

# 读取日期
date_value = ws['A1'].value


╰( ̄ω ̄o)蟹蟹观看╰( ̄ω ̄o)

作者:予安灵

物联沃分享整理
物联沃-IOTWORD物联网 » Python与excel交互(xlwt库和openpyxl库的使用)

发表回复