簡體   English   中英

將新列寫入現有 xlsx 文件

[英]Write a new column to existing xlsx file

我有一個.xlsx文件,其基本格式跨多個工作表(工作表 1、工作表 2、工作表 3)

Col1 | Col2 | Col3 | Col4 | Col5
abc1 | abc2 | abc3 | abc4 | abc5

列數變化的地方。 我希望能夠寫一個新的給定工作表的名稱。 此刻我有:

import openpyxl


def get_sheets():
    wb = openpyxl.load_workbook('C:/Users/mydir/Desktop/myfile.xlsx')
    sheets = wb.get_sheet_names()

sheet3 = "Sheet3"
sheet4 = "Sheet4"
for i in sheets:
    if i == sheet3:
        # Write column
    elif i == sheet4:
        # Write column in different sheet
    else:
        continue


def main():
    get_sheets()

    print
    print "Script finished."


if __name__ == "__main__":
    main()

openpyxl 是否允許將新列寫入現有 xlsx 文件,其標題和行數等於標題后的行數?

要向現有 xlsx 文件添加新列,您可以編寫add_column()函數,如下所示。 這需要工作表名稱和您希望添加的值列表:

import openpyxl

def add_column(sheet_name, column):
    ws = wb[sheet_name]
    new_column = ws.max_column + 1
    
    for rowy, value in enumerate(column, start=1):
        ws.cell(row=rowy, column=new_column, value=value)


wb = openpyxl.load_workbook('C:/Users/mydir/Desktop/myfile.xlsx')
add_column('Sheet3', ['new header', 'value1', 'value2'])
wb.save('output.xlsx')   # use the same name if required

您只需使用wb['Sheet3']即可按名稱獲取工作表。 然后要獲取工作表中現有列的數量,請使用ws.max_column獲取最后一列索引。 為新添加的列添加1

接下來使用 Python 的enumerate()函數來處理列值列表。 對於每一個,它都會為您提供要使用的行號和要寫入單元格的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM