常用模塊之openpyxl (python3入門)


from openpyxl import load_workbook  # 導入讀取excel文件的模塊
from openpyxl import Workbook  # 導入新建excel文件的模塊

xls_read = load_workbook('pyxl_test.xlsx')  # 打開excel文件名為'pyxl_test.xlsx'
# print(xls_read.sheetnames)  # 查看工作表'pyxl_test.xlsx'中的所有sheet名,以列表形式生成

print(xls_read.active)  # 查看文件pyxl_test的活動中sheet
# xls_read.active.title = 'test'  # 將活動中的sheet名稱變更為test
xls_read_sheet = xls_read.active  # 將活動中的sheet賦值給變量

# xls_read_sheet = xls_read.get_sheet_by_name('test') # 獲取excel文件的某一個sheet

# print(xls_read_sheet['C'])    # 讀取sheet中的C列所有數據,數據是以元組形式呈現
# print(xls_read_sheet['C4'].value) # 讀取sheet中'C4'單元格的值
# print(xls_read_sheet.max_column)  # 查看sheet中最大的列合計值,統計依據是只要單元格含有值,就算一列
# print(xls_read_sheet.max_row)     # 查看sheet中最大的行合計值,統計依據是只要單元格含有值,就算一行

# b4 = xls_read_sheet['B4']   # 通過列號+行數 來定位某一個cell
# print(b4.value)   # 使用.value 來獲取某一個cell的值

# print(xls_read_sheet.cell(column=2,row=4).value)  # 通過某sheet.cell(column=?,row=?).value 來取的某一個單元格的值

# xls_read_sheet.rows # sheet.rows是一個生成器,把每一行的內容形成一個元組
# for row in xls_read_sheet.rows:
#     print(row)
#     for cell in row:
#         print(cell.value)
#

# for column in xls_read_sheet.columns:   #sheet.columns是一個生成器,遍歷每一列 一列的內容形成元組
#     print(list(column))
#     print(list(column)[0].value)
# for i in column:
#     if i.value:
#         print(i.value)
# print(i.value)

for row in range(1, xls_read_sheet.max_row + 1):
    for col in range(1, xls_read_sheet.max_column + 1):
        res = xls_read_sheet.cell(row=row, column=col)
        if res.value:
            print(res.value, end=' ')
            # print(xls_read_sheet.cell(row=row,column=col).value,end=' ')
    print()

xls_read.save('pyxl_test.xlsx')     # 保存該文件

print('=' * 40)

wb = Workbook()  # 新建了一張工作表,並默認創建了一張名叫'Sheet'的sheet,
print(wb)  # <openpyxl.workbook.workbook.Workbook object at 0x10515bc50>
print(wb.get_sheet_names())  # 顯示wb工作表中所有的sheet,得到一個列表

wb.create_sheet('Data', index=1)  # 在wb工作表中新建一個名叫'Data'的sheet,該sheet的序號是1
# print(wb.get_sheet_names())
# del wb['Sheet']     #刪除wb工作表中名叫'Sheet'的sheet
print(wb.get_sheet_names())
print(wb.active)  # 查看wb工作表中活動中的sheet
print(wb.active.values)  # 將該wb工作表中活動中的sheet的數據形成一個生成器

wb.active.title = 'test_sheet'  # 當前活動中的sheet更名
# print(wb.sheetnames)
wb.active['A1'] = 4
wb.active['B1'] = 2
wb.active['C1'] = '=AVERAGE(A1:B1)'     #使用excel的公式(但是通過load_workbook data_only=True打開貌似也拿不到值)
wb.active['D1'] = '=A1*B1'

print(wb.active['A1'].value)
print(wb.active['B1'].value)
print(wb.active['C1'].value)
wb.save('pyxl_test1.xlsx')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM