這裏主要是把之前用到的一些 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!