每日一模塊:操做execl表格openpyxl

常見的模塊

牛人博客傳送門python

操做excelapp

  • openpyxl 處理2010及之後
  • xlwt 老版本

建立excel文件,而後寫入內容

from openpyxl import Workbook

"""
犯得錯: 必須全部寫完後再關閉
"""
# write
wb = Workbook()
ws = wb.create_sheet('first', 0)

# 獲取excel文件的全部sheet以列表返回
sheet_list = wb.sheetnames

# 獲取excel中每一個sheet
for i in wb:
    print(i)

# 直接獲取指定sheet對象
sheet1 = wb['first']

# 指定單元格寫入數據
sheet1['a1'] = '姓名'
sheet1['b1'] = '年齡'

# 或者經過cell函數來實現
sheet1.cell(row=2, column=1, value='xxx')
sheet1.cell(row=2, column=2, value='30')

sheet2 = wb.create_sheet('第二個表格', 1)
# 若是行內有內容,從下一行空白行開始寫入
# 一次添加1行寫入
row = range(1, 6)
sheet2.append(row)
# 一次添加多行
rows = [
    ['姓名', '年齡', '性別'],
    ['sun', '30', 'male'],
    ['xiu', '30', 'male'],
    ['wen', '30', 'male'],
]
for i in rows:
    sheet2.append(i)

wb.save('manage.xlsx')

# 獲取有效的【寫入內容】最大行和列
print(sheet2.rows)  # 全部有效行<generator object Worksheet._cells_by_row at 0x000001CA5A275888>
print(sheet2.columns)  # <generator object Worksheet._cells_by_col at 0x0000026B99345888>
print(sheet2.max_row)  # 5
print(sheet2.max_column)  # 5

# 獲取每一行數據
for row in sheet2.rows:
    for val in row:
        print(val.value)

# 獲取某一行數據
for cell in list(sheet2.rows)[0]:  # 第一行數據
    print(cell.value)
wb.save('manage.xlsx')

from openpyxl import load_workbook

wb = load_workbook(filename='manage.xlsx', read_only=False, data_only=True)
# data_only = True  表示單元格的值是由公式計算的,返回的是值,而不是公式
sheets = wb.sheetnames  # 獲取excel文件中全部的sheet名列表
print(sheets)

sheet = wb['first']  # 指定某個sheet表格

# 獲取內容
val = sheet['a1'].value
print(val)

# 賦值
sheet['b2'] = 30


sheet.title = '我改變了sheet名'
wb.save('manage.xlsx')
相關文章
相關標籤/搜索