openpyxl追加到右边

时间:2018-09-20 13:55:25

标签: python openpyxl

我是openpyxl的新手,遇到了一些问题

我正在遍历列表,为每个项目添加标题和一些数据。 我的问题是,对于每一项我要处理的项目,我都想在右侧添加“相同”数据,而不是像.append方法那样自上而下。

不知道这是否有意义。

一个例子

for agreement in agreements:
    n1 = wb.active

    n1.append([
        make_cell(n1, agreement.name, bold=True),
    ])

    n1.append([
        'Account Number',
        'Account Name',
        'Total DKK',
    ])

   for ....
       n1.append(....)

对于每个协议,我想在右侧添加“相同”数据,而不是上下颠倒。

该怎么做?

我想要什么..

headline                headline                headline        
Account Number  Account Name    Total DKK       Account Number  Account Name    Total DKK       Account Number  Account Name    Total DKK

1 个答案:

答案 0 :(得分:1)

  

问题:...在右侧添加“相同”数据,而不是像.append方法那样自上而下

您仍然必须使用ws.append(...)

首先,您需要一个Workbook实例:

from openpyxl import Workbook
wb = Workbook()
  
    

请勿在{{1​​}}循环中使用n1 = wb.active
    您只需一次即可获得活动的工作表。

for ...
  
for agreement in agreements:
    n1 = wb.active
  
    

您要在右侧每行添加 x 标头,因此不能使用ws = wb.active

.append(...)
  

n1.append(['Account Number', 'Account Name', 'Total DKK',]) 行列值之前,必须创建具有期望值的列表。
例如:

.append(...)
  

输出

HEADER = ['Account Number', 'Account Name','Total DKK']    
listOfColumnValues = []

# Extend listOfColumnValues with HEADER as many times you need
for _ in range(3):
    listOfColumnValues.extend(HEADER)

print("{}".format(listOfColumnValues))
ws.append(listOfColumnValues)

使用Python:3.4.2测试-openpyxl:2.4.1-LibreOffice:4.3.3.2