我正在尝试从一个Excel中制作多个Excel文件。这个想法是,主要的excel文件有2个固定工作表sample1和sample2。还有更多页面,如test1,test2,test3等。输出的excel文件应具有sample1,sample2和test1。第二个文件将具有test2而不是test1。我的代码如下:
import pandas as pd
import numpy as np
import openpyxl as xl
from openpyxl import Workbook
from openpyxl.reader.excel import load_workbook
from openpyxl import load_workbook
xl = pd.ExcelFile("C:\\Users\\DebayanDutta\\Desktop\\Sample_Data\\Sample_Data.xlsx")
sheet_names = xl.sheet_names
path1 = 'C:\\Users\\DebayanDutta\\Desktop\\Sample_Data\\Sample_Data.xlsx'
for i in range(0,len(sheet_names)-2) :
path2 = 'Test_'+str(i+1)+'.xlsx'
wb = Workbook()
ws = wb.active
ws.title = "Sample"
wb.save(filename = path2)
for i in range(0,2) :
wb1 = load_workbook(filename=path1)
ws1 = wb1.worksheets[i]
wb2 = load_workbook(filename=path2)
ws2 = wb2.create_sheet(ws1.title)
for row in ws1:
for cell in row:
ws2[cell.coordinate].value = cell.value
wb2.save(path2)
for i in range(0,len(sheet_names)-2) :
path2 = 'Test_'+str(i+1)+'.xlsx'
wb1 = load_workbook(filename=path1)
ws1 = wb1.worksheets[i+2]
wb2 = load_workbook(filename=path2)
ws2 = wb2.create_sheet(ws1.title)
for row in ws1:
for cell in row:
ws2[cell.coordinate].value = cell.value
wb2.save(path2)
for i in range(0,len(sheet_names)-2) :
workbook=load_workbook('Test_'+str(i+1)+'.xlsx')
std=workbook.get_sheet_by_name('Sample')
workbook.remove_sheet(std)
workbook.save('Test_'+str(i+1)+'.xlsx')
我已经尝试了许多关于Stack Overflow的解决方案。我使用了实际的路径,摆弄了正斜杠和反斜杠。我也尝试过 用“ w”代替“ W”。似乎没有任何作用。
错误是:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call
last)
<ipython-input-43-ab2ba22aca8a> in <module>
6 wb.save(filename = path2)
7 for i in range(0,2) :
----> 8 wb1 = xl.load_workbook(filename=path1)
9 ws1 = wb1.worksheets[i]
10 wb2 = xl.load_workbook(filename=path2)
AttributeError: 'ExcelFile' object has no attribute 'load_workbook'