У меня есть два листа. Из листа 1 мне нужно скопировать 9 значений из столбца и скопировать их на лист 0 в указанном c столбце
Я в основном создаю список с именем BillingValueList из листа 1
Мне нужно скопировать эти элементы списка в ячейки листа 0
Ниже приведен код, с которым я работал
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 14 10:22:16 2020
@author: sp22
"""
from openpyxl import load_workbook
from ConfigDetails import ConfigDetails
import traceback
import sys
class SignOff:
def __init__(self,billingSummary):
self.outputFile= billingSummary
self.indivSheet=0
# print(":::",self.gwlFileName)
self.summaryRow=0
ConfigDetails.logger.info("************Signoff And Wire-Transfer Request Process start***************")
ConfigDetails.logger.info("Output File::{}".format(self.outputFile))
def updateSignOff(self):
ConfigDetails.logger.info("process Signoff Start ")
try:
workbook = load_workbook(filename=self.outputFile)
workbook.active = 1
sheet = workbook.active
#findng month and getting values from sheet 1
Month = sheet ['F1']
print(Month.value)
for value in sheet.iter_cols(min_row=5,max_row=13,min_col=13,max_col=13,values_only=True):
BillingValue=value
BillingValueList = list(BillingValue)
# print(BillingValue[])
print(len(BillingValue))
workbook.active = 0
sheet = workbook.active
#
#finding Column in signoffsheet (sheet 0 ) from using Month Variable
i=0
for col in sheet.iter_cols():
for cell in col:
if cell.value == Month.value:
columnvalue = cell.column
print(columnvalue)
for [cell] in sheet.iter_rows(min_row=7,max_row=15,min_col=columnvalue,max_col=columnvalue):
print(cell)
for i in BillingValueList:
print('Billing value is' ,i)
sheet[cell.value] = i
i+1
return
# for i in BillingValueList:
# return
# return
workbook.save(filename=self.outputFile)
ConfigDetails.logger.info(" Process Signoff completed")
except Exception:
print("Error in Trad Parser Processing - Signoff Sheet Error",Exception)
traceback.print_exc(file=sys.stdout)
sys.exit()
from openpyxl import load_workbook
from ConfigDetails import ConfigDetails
import traceback
import sys
class SignOff:
def __init__(self,billingSummary):
self.outputFile= billingSummary
self.indivSheet=0
# print(":::",self.gwlFileName)
self.summaryRow=0
ConfigDetails.logger.info("************Signoff And Wire-Transfer Request Process start***************")
ConfigDetails.logger.info("Output File::{}".format(self.outputFile))
def updateSignOff(self):
ConfigDetails.logger.info("process Signoff Start ")
try:
workbook = load_workbook(filename=self.outputFile)
workbook.active = 1
sheet = workbook.active
#findng month and getting values from sheet 1
Month = sheet ['F1']
print(Month.value)
for value in sheet.iter_cols(min_row=5,max_row=13,min_col=13,max_col=13,values_only=True):
BillingValue=value
BillingValueList = list(BillingValue)
# print(BillingValue[])
print(len(BillingValue))
workbook.active = 0
sheet = workbook.active
#
#finding Column in signoffsheet (sheet 0 ) from using Month Variable
i=0
for col in sheet.iter_cols():
for cell in col:
if cell.value == Month.value:
columnvalue = cell.column
print(columnvalue)
#getting cells which needs to be updated with billingvalue list
for [cell] in sheet.iter_rows(min_row=7,max_row=15,min_col=columnvalue,max_col=columnvalue):
print(cell)
for i in BillingValueList:
print('Billing value is' ,i)
#assigning values to cells
cell.value = i
workbook.save(filename=self.outputFile)
ConfigDetails.logger.info(" Process Signoff completed")
except Exception:
print("Error in Trad Parser Processing - Signoff Sheet Error",Exception)
traceback.print_exc(file=sys.stdout)
sys.exit()
ValueList присваивается всем ячейкам в правильном столбце на листе 0
, то есть первое значение равно 11181.78, присваивается всем ячейкам в этом столбце, где следует скопировать первое значение в первое ячейка, второе значение из списка во вторую ячейку и т. д. Если вы посмотрите на скриншот, первое значение 11 181 должно быть в ячейке D7, 4567,94 - в ячейке d8 и т. д.
Не уверен, почему это происходит, может Кто-нибудь, помогите мне разобраться в этом
Ниже приведен скриншот моего вывода