Как скопировать содержимое листа из одного Excel в другой лист в другом Excel с использованием Python openpyxl? - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь скопировать некоторое содержимое листа в одном Excel на другой лист в другом Excel и использую Openpyxl в python.

Я написал базовую функцию, которая возвращает дескриптор листа. Так что я могу использовать ту же функцию, чтобы получить дескриптор для любого Excel, а не повторять код.

Я могу копировать содержимое во время печати в ячейке, но ничего не меняется в отличном содержимом. Хотите знать, как сохранить их в соответствующем порядке, поскольку функция пыталась использовать тот же дескриптор wb - workbook. Ниже приведен код.

from openpyxl import Workbook
import os
from openpyxl import Workbook, load_workbook
from openpyxl.compat import range
from openpyxl.utils import get_column_letter
from openpyxl.styles import Alignment, PatternFill, Border, Color
from openpyxl.styles.colors import YELLOW 
from openpyxl.styles.borders import Border, Side


def rss_link(arg1):
lxfpt = arg1 
print"rss_link: Value of lxfpt %s"%(lxfpt)

if len(lxfpt)>1:
    lxfp = str(lxfpt[0]).strip()
    sus  = str(lxfpt[1]).strip()
else:
    lxfp = str(lxfpt[0])
    sus  = None 
print"rss_link: Value of lxfp %s sus %s"%(lxfp,sus)

if not os.path.isfile(lxfp):
    print"rss_link : Please Load a Proper File\n"

lxf = open(lxfp, "a+") 
wb = load_workbook(lxf) 

sheet = wb.get_sheet_names()
for ws in sheet:
    print"Name of the sheet is : for %s"%ws
    if sus != None:
        print"into sus %s ws %s"%(sus,ws)
        if ws == sus:
            sheet = wb[ws]
            print"Name of the sheet selected is %s"%sheet
            break
    elif ws == "Sheet1":
        sheet = wb[ws]
        print"Name of the sheet selected is %s"%sheet
        break
    else:
        continue

if wb.active <> sheet:
    print"rss_link : Required Sheet Is Found In Sheet.!\n"

return sheet


lxfp_1 = ['<Path to File1>.xlsx', 'Sheet2']
lxfp_2 = ['<Path to File2>.xlsx', 'Sheet3']

sheet1 = rss_link(lxfp_1) 
sheet2 = rss_link(lxfp_2)


for row in sheet2.iter_rows(min_col=2, max_col=10, min_row=1, max_row=len(sheet2['A'])):
    for cell in row:
        sheet1.cell(row=10+cell.row, column=cell.column).value = cell.value
        print"sheet.cell.row %s sheet.cell.column %s sheet.cell.value %s\n"%(10+cell.row, cell.column, sheet1.cell(row=10+cell.row, column=cell.column).value)

wb = load_workbook("<File1>.xlsx") 
wb.save("<File1>.xlsx")        

Как я могу скопировать содержимое между двумя Excel, несмотря на использование вышеуказанной общей функции для возврата листа, или это невозможно вообще?

...