回覆列表
  • 1 # 城管哎

    Python中一般使用xlrd(excel read)來讀取Excel檔案,使用xlwt(excel write)來生成Excel檔案(可以控制Excel中單元格的格式),需要注意的是,用xlrd讀取excel是不能對其進行操作的:xlrd.open_workbook()方法返回xlrd.Book型別,是隻讀的,不能對其進行操作。而xlwt.Workbook()返回的xlwt.Workbook型別的save(filepath)方法可以儲存excel檔案。

    因此對於讀取和生成Excel檔案都非常容易處理,但是對於已經存在的Excel檔案進行修改就比較麻煩了。不過,還有一個xlutils(依賴於xlrd和xlwt)提供複製excel檔案內容和修改檔案的功能。其實際也只是在xlrd.Book和xlwt.Workbook之間建立了一個管道而已。

    xlutils.copy模組的copy()方法實現了這個功能,示例程式碼如下:

    from xlrd import open_workbookfrom xlutils.copy import copyrb = open_workbook("m:\\1.xls") #透過sheet_by_index()獲取的sheet沒有write()方法rs = rb.sheet_by_index(0)wb = copy(rb) #透過get_sheet()獲取的sheet有write()方法ws = wb.get_sheet(0)ws.write(0, 0, "changed!")wb.save("m:\\1.xls")

    練習程式碼(透過xlrd 讀取 & 寫入,再借用copy進行儲存):

    特別注意:由於copy儲存實質上是透過xlwt進行儲存的,而實際上xlwt儲存的檔案。

    而透過xlwt只能寫入xls檔案,不能寫入xlsx檔案。

    import xlrdfrom xlwt import *from xlutils.copy import copyxlsfile = "test.xls"book = xlrd.open_workbook(xlsfile)sheet_name = book.sheet_names()print(sheet_name)sheet = book.sheet_by_index(1)nrows = sheet.nrowsncols = sheet.ncolsprint(nrows)print(ncols)row_data = sheet.row_values(0)col_data = sheet.col_values(0)print(row_data)print(col_data)cell_value = sheet.cell_value(3,0)print(cell_value)cell_value2 = sheet.cell(3,0)print(cell_value2)sheet.put_cell(1,2,1,"test",0)cell_value2 = sheet.cell(1,1)print(cell_value2)#儲存xlsfilewb = copy(book)wb.save(xlsfile)

  • 中秋節和大豐收的關聯?
  • 為什麼電腦裡C盤裡的一些沒用的檔案件刪不掉?