一篇文章帶你使用 Python搞定對 Excel 表的讀寫和處理(xlsx檔案的處理)

2020-09-24 11:00:16

前面已經寫過 一篇 Python 對 excel 檔案的處理,需要的可以參考學習,本篇文章主要是記錄我實際操作時的一些問題。

一、我的需求

我想要excel 的最後1列由列表形式轉換為數值型別

在這裡插入圖片描述
可以看到最後一列有的是列表,有的直接是數值,想要整個列表中的內容都轉為數值型別

二、程式碼

import openpyxl

def write_excel_xlsx():
    # 寫入資料準備
    workbook = openpyxl.Workbook()
    sheet = workbook.active
    sheet.title = "優化後的引數"
    # 記錄寫的行數
    write_row = 0
    # 首先從excel中讀取資料
    work_read = openpyxl.load_workbook("樣本優化.xlsx")
    sheet_read = work_read["優化後的引數"]
    # 將表中的所有行轉換為列表
    rows_data = list(sheet_read.rows)
    # 逐行讀取
    for row in rows_data:
        for i in range(len(row)):
            value = row[i].value
            if isinstance(value, str):
                sheet.cell(row=write_row + 1, column=i + 1, value=str(value[1:len(value) - 1]))
            else:
                sheet.cell(row=write_row + 1, column=i + 1, value=str(value))
        write_row = write_row + 1
    workbook.save("樣本優化-處理.xlsx")
    print("xlsx格式表格寫入資料成功!")

write_excel_xlsx()

三、總結

  1. 將表中的所有行轉換為列表
# 將表中的所有行轉換為列表
rows_data = list(sheet_read.rows)

這一步挺重要,因為後面我們對具體的列數操作,這樣轉換更方便

  1. 那個列表在excel中是字串的形式,所以需要對其單獨進行判斷
if isinstance(value, str):
   sheet.cell(row=write_row + 1, column=i + 1, value=str(value[1:len(value) - 1]))
else:
   sheet.cell(row=write_row + 1, column=i + 1, value=str(value))
  1. 對這個行數需要注意,處理完一行需要對其遞增
南淮北安 CSDN認證部落格專家 神經網路 深度學習 Python
日出又日落,深處再深處;一張小方桌,有一葷一素;