openpyxl-筆記 (初章)
XLSX是一種特殊的二進制格式
所以其實也可以透過
with open('example.xlsx','wb')as f:
f.write(b'')
創造一個xlsx
但是要進行操作相當麻煩
這些事情可以透過 openpyxl 執行
以下是簡單的 創造xlsx 插入資料 的功能介紹
介紹Worksheet類的sheet實例,以下是他常用的屬性和方法
1.title :工作表的標題
sheet.title='設置工作表名稱'
she=workbook.create_sheet(title="這也是設置工作表名稱")
print(f'獲取工作表名稱={sheet.title}')
print(f'另一個工作表名稱{she.title}')
-----------------
獲取工作表名稱=設置工作表名稱
另一個工作表名稱這也是設置工作表名稱
2.max_row & max_column : 查看工作表的最大行數和列數
print(f'查看{sheet.title}, 工作表的最大行數:{sheet.max_row}')
print(f'查看{sheet.title}, 工作表的最大列數{sheet.max_column}')
-----------------
查看設置工作表名稱, 工作表的最大行數:5
查看設置工作表名稱, 工作表的最大列數2
3.dimensions: 工作表的資料維度,返回包含最小行、最大行、最小列、最大列的tuple
#查看sheet這個工作表的資料維度
print(f'{sheet.title}的資料維度: {sheet.dimensions}')
------------------
設置工作表名稱的資料維度: A1:B5
4.rows:包含所有行的tuple,每一行又是一個tuple,其中包含單元格對象
print(sheet.rows)
print(f'注意,如果是tuple,那他不會有cell和value屬性')
for i in sheet.rows: #這邊迭代出來的i他是生成器對象, 'generator'
print(i)
print('-'*30)
print(i[0].value,i[1].value)
----------------
<generator object Worksheet._cells_by_row at 0x000001F37E77AC20>
!!!注意,如果是tuple,那他不會有cell和value屬性!!!
(<Cell '設置工作表名稱'.A1>, <Cell '設置工作表名稱'.B1>)
------------------------------
美元 30.72
(<Cell '設置工作表名稱'.A2>, <Cell '設置工作表名稱'.B2>)
------------------------------
歐元 32.95
(<Cell '設置工作表名稱'.A3>, <Cell '設置工作表名稱'.B3>)
------------------------------
人民幣 4.35
(<Cell '設置工作表名稱'.A4>, <Cell '設置工作表名稱'.B4>)
------------------------------
令吉 6.68
(<Cell '設置工作表名稱'.A5>, <Cell '設置工作表名稱'.B5>)
----------------
generator 這種格式要用迭代才能看到, 因為她是生成器
5.columns:包含所有列的tuple,每一列又是一個tuple, 其中包含單元格對象
print(f'我們來確認有幾行')
print(sheet.max_row)
print('-'*30)
for i in sheet.columns:
print(i)
print(i[0].value,i[1].value,i[2].value,i[3].value,i[4].value)
print('-'*30)
----------------------------------
我們來確認有幾行
5
------------------------------
(<Cell '2023-05-27匯率'.A1>, <Cell '2023-05-27匯率'.A2>, <Cell '2023-05-27匯率'.A3>, <Cell '2023-05-27匯率'.A4>, <Cell '2023-05-27匯率'.A5>)
美元 歐元 人民幣 令吉 泰銖
------------------------------
(<Cell '2023-05-27匯率'.B1>, <Cell '2023-05-27匯率'.B2>, <Cell '2023-05-27匯率'.B3>, <Cell '2023-05-27匯率'.B4>, <Cell '2023-05-27匯率'.B5>)
30.72 32.94 4.35 6.68 0.88
------------------------------
6.cell(): 訪問指定的單元格
element=sheet.cell(row=1,column=1) #欄和列都是由1開始
print(f'cell(): 會回傳一個Cell型態, 我們可以使用value變成我們要看的資料')
print(element.value)
-----------------------------
<Cell '2023-05-27匯率'.A1>
cell(): 會回傳一個Cell型態, 我們可以使用value變成我們要看的資料
美元
7.iter_rows & iter_columns :生成器函數,用於按 行 / 列 迭代工作表中的單元格
for row in sheet.iter_rows():
print(row)
------------------------------
(<Cell '2023-05-27匯率'.A1>, <Cell '2023-05-27匯率'.B1>)
(<Cell '2023-05-27匯率'.A2>, <Cell '2023-05-27匯率'.B2>)
(<Cell '2023-05-27匯率'.A3>, <Cell '2023-05-27匯率'.B3>)
(<Cell '2023-05-27匯率'.A4>, <Cell '2023-05-27匯率'.B4>)
(<Cell '2023-05-27匯率'.A5>, <Cell '2023-05-27匯率'.B5>)for row in sheet.iter_rows():
for i in row:
#i=<Cell '2023-05-27匯率'.A1>..A1一直B5
#可以Cell可以使用value取值
print(i.value)
------------------------------美元
30.72
歐元
32.94
人民幣
4.35
令吉
6.68
泰銖
0.88
import openpyxl
#創造一個Workbook對象
workbook=openpyxl.Workbook()
#獲取默認的工作表
sheet=workbook.active
print(f'sheet={sheet}')
sheet2=workbook.create_sheet(title='第二表')
j=workbook.active #測試多種工作表情況下的判定
print(f'sheet={j}')
print(f'目前有哪些工作表{workbook.sheetnames}')
------------------------------------
(?祈0_30) PS C:\Users\K\OneDrive\桌面\爬蟲0_30> & C:/Users/K/.virtualenvs/爬蟲0_30-yiVzn_yZ/Scripts/python.exe c:/Users/K/OneDrive/桌面/爬蟲0_30/Day-16.py
sheet=<Worksheet "Sheet">
sheet=<Worksheet "Sheet">
['Sheet', '第二表']
workbook.active 的功能是取得默認的工作表,也就是創建xlsx時的工作表1
如果該文檔的工作表是複數時,他獲取的默認工作表,則會是第一個工作表
workbook.creat_sheet() 可以創建工作表,
title是可選的引數(string),表示工作名稱
index是可選的引數(int),指定工作表的索引位置,默認是末尾
sheet2=workbook.create_sheet(title='第二表',index=0)
j=workbook.active #測試多種工作表情況下的判定
print(f'sheet={j}')
#添加標題行
sheet2.append(['我是標題1','我是標題2','我是標題3'])
#添加頁腳
sheet2['A10']='Footer'
sheet2['A3']='ga'
print(f'目前有哪些工作表{workbook.sheetnames}')
#寫入數據到單元格
sheet['A1']='Hello'
sheet['B1']='WOrld'
#保存文件
workbook.save('example.xlsx')
#看最大的行以及列
mxR=sheet.max_row #獲取最大行
mxC=sheet.max_column #獲取最大列
mxR2=sheet2.max_row
mxC2=sheet2.max_column
print(mxR,mxR2)
print(mxC,mxC2)
--------------------------
1 10
2 3
標籤: openpyxl



0 個意見:
張貼留言
訂閱 張貼留言 [Atom]
<< 首頁