Python 和 Excel 公式
Python and Excel Formula
完全是新手,但特别需要尝试通过自动化 Excel 让我的生活更轻松。
我有一份每周报告,其中包含很多无用的列,使用 Python 我可以删除这些并重命名它们,代码如下。
from openpyxl import Workbook, load_workbook
wb = load_workbook('TestExcel.xlsx')
ws = wb.active
ws.delete_cols(1,3)
ws.delete_cols(3,8)
ws.delete_cols(4,3)
ws.insert_cols(3,1)
ws['A1'].value = "Full Name"
ws['C1'].value = "Email Address"
ws['C2'].value = '=B2&"@testdomain.com"'
wb.save('TestExcelUpdated.xlsx')
这样就可以了,但我希望公式从 B2 向下继续(因为顶行是标题)。
ws['C2'].value = '=B2&"@testdomain.com"'
显然,在 Excel 中,这只是将公式向下拖动到列末尾的情况,但我不知道如何在 Python 中使用它。我见过类似的问题,但答案超出了我的理解。
非常感谢假人指南。
Example of Excel report after Python code
一种方法是遍历工作表中的行。
for row in ws.iter_rows(min_row=2): #min_row ensures you skip your header row
row[2].value = '=B' + str(row[0].row) + '&"@testdomain.com"'
由于基于零的索引,row[2].value
选择第三列。 row[0].row
获取当前行对应的数字
完全是新手,但特别需要尝试通过自动化 Excel 让我的生活更轻松。 我有一份每周报告,其中包含很多无用的列,使用 Python 我可以删除这些并重命名它们,代码如下。
from openpyxl import Workbook, load_workbook
wb = load_workbook('TestExcel.xlsx')
ws = wb.active
ws.delete_cols(1,3)
ws.delete_cols(3,8)
ws.delete_cols(4,3)
ws.insert_cols(3,1)
ws['A1'].value = "Full Name"
ws['C1'].value = "Email Address"
ws['C2'].value = '=B2&"@testdomain.com"'
wb.save('TestExcelUpdated.xlsx')
这样就可以了,但我希望公式从 B2 向下继续(因为顶行是标题)。
ws['C2'].value = '=B2&"@testdomain.com"'
显然,在 Excel 中,这只是将公式向下拖动到列末尾的情况,但我不知道如何在 Python 中使用它。我见过类似的问题,但答案超出了我的理解。 非常感谢假人指南。 Example of Excel report after Python code
一种方法是遍历工作表中的行。
for row in ws.iter_rows(min_row=2): #min_row ensures you skip your header row
row[2].value = '=B' + str(row[0].row) + '&"@testdomain.com"'
由于基于零的索引,row[2].value
选择第三列。 row[0].row
获取当前行对应的数字