簡體   English   中英

如何將列表寫入新的 excel 工作簿?

[英]How can i write a list to a new excel workbook?

所以我有一個問題,我有一個列表,其中包含來自其他 excel 工作簿的完整數據,我想將其寫入新的 excel。 我成功了一半,我的代碼只寫了列表的第一個元素。 我怎樣才能逐行寫入數據? 到目前為止,這是我的代碼:

import glob as gl
from openpyxl import load_workbook
import xlsxwriter

files = gl.glob(r"<path>*.xlsm")
for file in files:
    lst = []
    wb = load_workbook(filename=file)
    s = wb.active
    a = s['C2'].value
    lst.append(a)
    b = s['E2'].value
    lst.append(b)
    c = s['C3'].value
    lst.append(c)


    workbook = xlsxwriter.Workbook('<name>.xlsx')
    worksheet = workbook.add_worksheet()

    row = 1
    column = 0
    for item in lst:
        worksheet.write(row,column,item)
        column += 1
    workbook.close()

首先,您需要收集列表中的所有文件,因此:

all_lists = []
for file in files:
    lst = []
    wb = load_workbook(filename=file)
    s = wb.active
    a = s['C2'].value
    lst.append(a)
    b = s['E2'].value
    lst.append(b)
    c = s['C3'].value
    lst.append(c)
    all_lists.append(lst)

在上面的代碼片段之后,您將擁有all_files中的所有讀取文件現在作為示例,假設:

all_files = [['heyho', 'hohoo', 'juhuu'],
             ['heyho1', 'hohoo1', 'juhuu1'],
             ['heyho2', 'hohoo2', 'juhuu2']]

您可以通過以下代碼段將每個元素寫入一行:

workbook = xlsxwriter.Workbook('myfile.xlsx')
worksheet = workbook.add_worksheet()

row = 0  # initial row
for item in all_files:
    column = 0  # column resets for each row
    for i in item:
        worksheet.write(row, column, i)
        column += 1
    row += 1
workbook.close()

暫無
暫無

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

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