我正在尝试使用 xlsxwriter 将迷你图添加到我的 excel 中。我让它只处理一行,但我想问一下如何在不为每一行写出多行代码的情况下对多行执行此操作。到目前为止,我的代码如下。任何帮助表示赞赏。
import pandas as pd
df = pd.read_excel(r'C:\Users\Qtr2.xlsx')
df.to_excel(r'C:\Users\Test.xlsx', index=False, sheet_name='Sheet1')
writer= pd.ExcelWriter(r'C:\Users\Enhanced.xlsx', engine='xlsxwriter')
df.to_excel(writer, index=False, sheet_name='Sheet1')
wb= writer.book
ws= writer.sheets['Sheet1']
ws.add_sparkline('E2', {'range':'Sheet1!B2:D2'})
ws.add_sparkline('E3', {'range':'Sheet1!B3:D3', 'type':'column'})
writer.save()
只需使用一个循环。 范围涵盖起始行(在本例中为第 3 行)到结束行,您可以根据 df 大小或其他设置确定结束行,具体取决于要应用的行数。然后使用计数替换每个循环中的行值。
...
max_rows = df.shape[0]
ws.add_sparkline('E2', {'range': 'Sheet1!B2:D2'})
for row in range(3, max_rows+1):
ws.add_sparkline(f'E{row}', {'range': f'Sheet1!B{row}:D{row}', 'type': 'column'})
...