我尝试使用Openpyxl做的是我从excel表复制一些单元格的值,然后打开另一个excel表并粘贴这些值。 出乎意料的是我得到了边框线断裂的纸张,特别是组合的单元格。
我想听听你的意见。 此外,还有更好的循环细胞方法吗?目前只有三个细胞,但如果它超过100个...... 非常感谢你。
{{1}}
答案 0 :(得分:0)
我可能会误解这个问题,但嵌套的for循环看起来很理想...
from openpyxl import load_workbook
import os
from os.path import exists
target_file = input('ex)201711 ')
wb = load_workbook(target_file + '.xlsm', data_only=True)
sheet = wb['summary']
num_people = len(sheet['A:A'])
num_vals = 3
for i in range(1, num_people):
for j in range(1,numvals+1):
val[j] = sheet.cell(row=i + 1, column=j).value
file_name = '2017(' + val[1] + ').xlsx'
if not exists(file_name):
continue
else:
wb = load_workbook(file_name, data_only=True)
sheet2 = wb['summary2']
for j in range(1,numvals+1):
sheet2.cell(row=1, column=j).value = val[j]
wb.save(file_name)
此外,openpyxl现在支持数组索引样式的单元格引用,这可以使事情更容易读/写:
#these are equivalent
sheet2.cell(row=1, column=j).value = val[j]
sheet2.[openpyxl.utils.get_column_letter(j) + '1'] = val[j]
关于格式化边框,在openpyxl中(遗憾的是)必须明确指定合并单元格上的所有边框,这与默认的excel操作不同,后者在合并上应用了topleft单元格的样式。