这里主要是把之前用到的一些 python 操作excel的一些基本用法记录一下
python 中的操作excel的库
openpyxl
openpyxl中
Workbook
是工作簿的类, 其中sheet是一张工作表
加载excel
from openpyxl import load_workbook
load_workbook("path_to_wxcel.xlsx")
获取所有sheet名称
from openpyxl import Workbook
wb = Workbook()
sheet_names = wb.sheetnames
sheet_names = wb.get_sheet_names()
获取对应的sheet
from openpyxl import Workbook
wb = Workbook()
ws = wb.get_sheet_by_name("your_sheet_name")
ws = wb.active
获取对应的单元格的值
from openpyxl import Workbook
wb = Workbook()
ws = wb.get_sheet_by_name("your_sheet_name")
print ws["A1"].value
print ws.cell(row=1, column=1).value
设置单元格的值
通常是使用第二种方式
ws["A1"].value = "1"
ws.cell(row=1, column=1, value="1")
设置字体颜色
from openpyxl import Workbook
from openpyxl.styles import Font
from openpyxl.styles.colors import RED, YELLOW
font = Font(color=RED)
wb = Workbook()
ws = wb.active
cell = ws.cell(row=1, column=1)
cell.font = font
设置对齐方式 和 宽 高
from openpyxl import Workbook
from openpyxl.styles.alignment import Alignment
wb = Workbook()
ws = wb.active
alignment = Alignment(horizontal='distributed', vertical='top', wrap_text=True, indent=1)
# 下面分别设置宽高
for item in ws.columns:
ws.column_dimensions[item[0].column].width = 20
for item in ws.rows:
ws.row_dimensions[item[0].row].height = 16
for row in ws.iter_rows():
for cell in row:
cell.alignment = alignment
# 上面的做法效率有些低,因为需要获取到每个单元格。
# 可以找更高效的设置方式,欢迎在里面讨论
# 补充
# 可以手动的获取最大的行和列数,然后生成列的 ABC 形式
# 然后通过 ws.column_dimensions["A"].width = 20 的方式设置
# 看下面这个函数
转换函数
def to_abc(x):
"""将十进制数转换为26进制,并且换位excel 中的abc格式"""
code = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
# 将十进制数转换为26进制,并且换位excel 中的abc格式
k = 26
r = []
if not x:
return ""
while x:
r.append(x % k)
x /= k
return "".join([code[item - 1] for item in r[::-1]])
print to_abc(28) # "AB"
文章就是要公开,竟然看到csdn为了让用户付费vip 推出vip 文章,真是个心机boy!