python - 在 .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
解决方案
如果您想使用 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)
推荐阅读
- ios - 如何在 swift [iOS] 中从特定时间开始发送本地通知 UNTimeInterval
- angular - 更新 ANGULAR v6 -> v8:如何修复“加载程序中的错误“datatable.component.css”没有返回字符串。”
- sql-server - 按批次编号显示数量和数量细分
- c++ - 将大型二维数组初始化为C++中的所有一个值
- asp.net-web-api - Swashbuckle 中一个控制器的多个版本
- python - 在 Pycharm 调试器中迭代字典时找不到局部变量
- sql - 查询时间范围时的 Postgresql 性能问题
- google-cloud-platform - 如何从 GCP 控制台或 UI 中检索 Bigquery 帐单详细信息?
- angular - 我想在我的组件中打开另一个网站。在 Angular 中使用深度链接
- php - 为什么我没有正确的密码就可以登录?为什么 password_verify 总是返回 true?