Python操作Excel之xlsx檔案,

來源:互聯網
上載者:User

Python操作Excel之xlsx檔案,

前言

之前處理excel的讀寫時用的是xlrd/xlwt,但是這兩個庫有個缺點就是只對xls的格式處理的比較好,對以xlsx結尾的格式就不行了。由於現在大家使用的都是最新版本的office,excel的格式都是xlsx,因此此時再繼續用xlrd/xlwt處理就不合適了,慶幸的是對於xlsx檔案的讀寫,我們還可以使用openpyxl來操作。

我對excel並不熟悉,平時也不怎麼用,所以對excel的處理很簡單,只是簡單的讀寫,這裡示範的也是簡單的讀寫操作,具體的進階功能,可以參考文後的連結地址。

一:寫一個excel檔案如下

 from openpyxl import Workbook from openpyxl.utils import get_column_letter  # 在記憶體中建立一個workbook對象,而且會至少建立一個 worksheet wb = Workbook()  #擷取當前活躍的worksheet,預設就是第一個worksheet ws = wb.active  #設定儲存格的值,A1等於6(測試可知openpyxl的行和列編號從1開始計算),B1等於7 ws.cell(row=1, column=1).value = 6 ws.cell("B1").value = 7  #從第2行開始,寫入9行10列資料,值為對應的列序號A、B、C、D... for row in range(2,11):  for col in range (1,11):   ws.cell(row=row, column=col).value = get_column_letter(col)  #可以使用append插入一行資料 ws.append(["我","你","她"])  #儲存 wb.save(filename="/Users/budong/Desktop/a.xlsx")

二:讀剛剛寫入的excel內容如下

 from openpyxl import load_workbook  #開啟一個workbook wb = load_workbook(filename="/Users/budong/Desktop/a.xlsx")  #擷取當前活躍的worksheet,預設就是第一個worksheet #ws = wb.active  #當然也可以使用下面的方法  #擷取所有表格(worksheet)的名字 sheets = wb.get_sheet_names() #第一個表格的名稱 sheet_first = sheets[0] #擷取特定的worksheet ws = wb.get_sheet_by_name(sheet_first) #擷取表格所有行和列,兩者都是可迭代的 rows = ws.rows columns = ws.columns  #迭代所有的行 for row in rows:  line = [col.value for col in row]  print line  #通過座標讀取值 print ws.cell('A1').value # A表示列,1表示行 print ws.cell(row=1, column=1).value

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流,謝謝大家對幫客之家的支援。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.