openpyxl 是一个用于在 python 中读取和写入 excel 文件的优秀库。
它支持 .xlsx 和 .xlsm 格式,非常适合在 ubuntu 系统上进行 excel 数据处理和自动化操作。
本篇博客将介绍一些常用的 openpyxl 命令。
安装
安装python3
首先,你需要安装 openpyxl 和 python。在 ubuntu 上,可以通过以下命令安装:
sudo apt install python3
安装 openpyxl
pip3 install openpyxl
基础操作
1. 引入
from openpyxl import workbook # 新建文件的引入 from openpyxl import load_workbook # 加载已存在文件的引入
2. 创建工作簿和工作表
wb = workbook() # 创建一个新的工作簿 ws = wb.active # 获取活动工作表 wb.create_sheet("sheet2") # 创建一个新的工作表并命名 ws.title = "newsheet" # 修改工作表名
3. 写入数据
ws['a1'] = 'hello, world!' ws['b1'] = 42 ws['c1'] = 3.14 cell = ws.cell(row=1, column=1, value="new value")
4. 保存工作簿
wb.save('example.xlsx')
5. 加载已存在的excel
wb = load_workbook('example.xlsx') ws = wb.active
6. 读取单元格的值
cell_a1 = ws['a1'].value cell_b1 = ws['b1'].value cell_c1 = ws['c1'].value print(f"a1: {cell_a1}, b1: {cell_b1}, c1: {cell_c1}")
7. 选择工作表
ws1 = wb.worksheets[0] # 通过索引选择工作表 ws2 = wb["sheet2"] # 通过名称选择工作表
样式和格式化
1. 引入
from openpyxl.styles import font, alignment # 样式操作的引入
2. 设置字体
font = font(name='arial', size=14, bold=true, italic=false) ws['a1'].font = font
3. 设置边框
border = border(left=side(border_style='thin'), right=side(border_style='thin'), top=side(border_style='thin'), bottom=side(border_style='thin')) ws['a1'].border = border
4. 填充
fill = patternfill(start_color="ff0000", end_color="ff0000", fill_type="solid") ws['a1'].fill = fill
5. 设置数字格式
ws['b1'].number_format = '0.00%' # 百分比格式 ws['c1'].number_format = 'yyyy-mm-dd' # 日期格式
6. 数据验证
from openpyxl.worksheet.datavalidation import datavalidation dv = datavalidation(type="list", formula1='"apple,banana,cherry"', allow_blank=true) # 创建数据验证对象 ws.add_data_validation(dv) dv.add('a1') # 将数据验证应用到单元格
7. 公式操作
可以在单元格中插入公式:
ws['d1'] = "=sum(a1:a3)"
性能优化
1. read_only/write_only
对于大的 excel 文件,可以使用read_only来提高读取效率, 使用 write_only 来优化写入性能
from openpyxl import load_workbook wb = load_workbook('example.xlsx', read_only=true) # 使用只读模式加载工作簿
from openpyxl import workbook wb = workbook(write_only=true) # 使用写入模式创建工作簿 ws = wb.create_sheet()
2. 遍历单元格
可以使用 .rows 和 .columns 遍历工作表中的行和列:
for row in ws.iter_rows(min_row=1, max_row=5, min_col=1, max_col=3): for cell in row: print(cell.value, end=" ")
到此这篇关于python使用openpyxl操作excel文件的实现的文章就介绍到这了,更多相关python openpyxl操作excel内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论