![](/img/trans.png)
[英]How can I save Excel worksheets in a single workbook as workbooks with their data
[英]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.