我有一個串列值,并希望將其分配到 excel 檔案中的列中。我要更改的值在表 6 中。
我糟糕的代碼看起來像這樣我能做的最好的事情是首先嘗試將 AF6:AF22 更改為固定值 5,希望我可以將其更改為串列。
但是有沒有一種簡單的方法可以將 AF6:AF22 值更改為串列?簡單的 ws['AF6:AF22'] = l?
from openpyxl import Workbook
import pandas as pd
from openpyxl import load_workbook
l = list(range(5))
FilePath = 'excel_file.xlsx'
wb = load_workbook(FilePath)
ws = wb.worksheets
sheet_number = 6
for sheet_number in ws.iter_cols('AF6:AF22'):
for cell in sheet_number:
cell.value = 5
uj5u.com熱心網友回復:
選項 1 嗨 - 我在這里添加了一種更快的方法。這可能會更好,因為它避免了 for 回圈并一次更新一個單元格。
from openpyxl import Workbook
import pandas as pd
from openpyxl import load_workbook
l = list(range(17)) #The list - You can replace l with whatever you need
with pd.ExcelWriter('excel_file.xlsx', mode='a', engine = 'openpyxl') as writer:
pd.DataFrame(l).to_excel(writer, sheet_name='Sheet6', startrow = 5, startcol= 31, index=False, header=None)
選項 2 您可以使用下面的代碼來做您需要的事情。添加評論,讓您了解我的邏輯......
from openpyxl import Workbook
import pandas as pd
from openpyxl import load_workbook
l = list(range(17)) #The list - You can replace l with whatever you need
FilePath = 'excel_file.xlsx'
wb = load_workbook(FilePath)
ws = wb.worksheets[5] #Worksheet 5 is the 6th sheet as numbering starts from zero
for i in range(6,23): # Column numbers 6 through 22
ws.cell(row=i, column=32).value = l[i-6] #Write to cell in AF = column 32
wb.save("excel_file.xlsx")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/488224.html
標籤:Python 擅长 熊猫 打开pyxl xlsxwriter
