首页 > 解决方案 > 在 .xlsx 文件中,如何插入一列,并将其从单元格 A2 填充到最大行?

问题描述

请参阅下面的代码以尝试解决标题。不起作用的部分以“for row_num”开头,我想用单个值填充 A 列。我没有收到错误消息,但是当我打开文件时,我看到一个带有“Form ID”的单元格 A1,但 A2 列中最大行的行 A2 是空白的(当我希望所有这些都包含“Test ID”时。 谢谢。

wb = load_workbook(filename = 'H:/Hello.xlsx')
ws = wb.worksheets[0]
sheet_names = wb.get_sheet_names()
name = wb.sheetnames[0]
sheet_ranges = wb[name]
df = pd.DataFrame(sheet_ranges.values)
sheet = wb.worksheets[0]
max_row = sheet.max_row
sheet.insert_cols(0)
ws['A1'] = "Form ID"
for row_num in range(2, max_row):
    cell = xl_rowcol_to_cell(row_num, 1)
    worksheet.write(row_num, 1, 'TESTID')
wb.save("Hello.xlsx")

前:

xl   Date   Value
0     1      2
1     2      4
2     3      6
3     4      8
4     5     10
5     6     12

期望的输出:

xl    Form_ID      Date   Value
0     ABC           1      2
1     ABC           2      4
2     ABC           3      6
3     ABC           4      8
4     ABC           5     10
5     ABC           6     12

标签: pythonexcelpandasdataframe

解决方案


如果您想使用 Pandas,请使用其矢量化功能。无需手动迭代行:

path = r'H:/Hello.xlsx'

# read file into dataframe
df = pd.read_excel(path)

# add series
df['Form_ID'] = 'TESTID'

# order columns
df = df[['xl', 'Form_ID', 'Date', 'Value']]

# export dataframe
df.to_excel(path, index=False)

推荐阅读