盡管這個問題似乎已經得到解答,但我擔心某些帖子可能已經過時,或者 openpyxl 已棄用此功能。
我需要根據特定條件使用 Python 在 Excel 檔案中更改一些字體格式。如果在“MIC”和“B5BA”列中,單元格 ==“2 人輸入錯誤”將單元格字體顏色更改為紅色并將字體加粗。我按照教程和其他示例進行了發球,但字體沒有改變。我遍歷列和行以獲得單元格坐標,我比較單元格內的值,如果單元格值滿足條件更改字體。我保存的檔案中的單元格字體沒有改變。
我發布的代碼將自動從 df 寫入 excel 作業簿,然后讀取 Excel 作業簿。openpyxl 是否已棄用此功能?幫助表示贊賞!代碼如下。
import pandas as pd
from openpyxl.styles import Font, Color, colors
from openpyxl import Workbook, load_workbook
from openpyxl.utils import get_column_letter
data = [
[1, '2022-10-10', '2022-10-10', 'Monday', 'Lunch', '2 Person Entry Error', '2 Person Entry Error', None],
[1, '2022-10-10', '2022-10-10', 'Monday', 'Dinner', '2 Person Entry Error', '2 Person Entry Error', None],
[2, '2022-10-10', '2022-10-10', 'Monday', 'Dinner', 'John', None, None],
[2, '2022-10-10', '2022-10-11', 'Tuesday', 'Lunch', 'Bob', 'Mackenzie ', None],
[3, '2022-10-10', '2022-10-11', 'Tuesday', 'Dinner', '2 Person Entry Error', '2 Person Entry Error', None],
[3, '2022-10-10', '2022-10-12', 'Wednesday', 'Lunch', '2 Person Entry Error', '2 Person Entry Error', None]
]
cols = ['Store', 'Start Date', 'Date', 'Day of Week', 'Shift', 'MIC', 'B5BA', 'Task']
df = pd.DataFrame(data, columns=cols)
df.to_excel('input.xlsx', index=False)
input_file_path = 'input.xlsx'
output_file_path = 'output.xlsx'
wb = load_workbook(input_file_path)
ws = wb.active
col_start = 6
col_end = 7
row_start = 2
row_end = ws.max_row
for col_num in range(col_start, col_end 1):
col_letter = get_column_letter(col_num)
for row_num in range(2, row_end 1):
# cell_coordinate = ws.cell(row=row_num, column=col_num)
cell_coordinate = ws[f'{col_letter}{row_num}']
print(cell_coordinate, f'{col_letter}{row_num}')
if cell_coordinate.value == '2 Person Entry Error':
cell_coordinate = Font(color='FF0000', bold=True)
wb.save(output_file_path)
wb.close()
uj5u.com熱心網友回復:
如果沒有提及“示例”的任何鏈接,就無法判斷您是否在做與他們宣傳的完全相同的事情。無論哪種方式,修復應該如下。改變:
cell_coordinate = Font(color='FF0000', bold=True)
進入:
cell_coordinate.font = Font(color='FF0000', bold=True)
見
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/514488.html
上一篇:基于2個標準的回圈過濾資料并將其與標題一起復制到新作業表
下一篇:將多個值索引到單個單元格中
