I am trying to insert data in Excel sheet by mysql table data.
'Feedstock', 'None', 'Naphtha', '5.00000', '2005', 'Y'
'Feedstock', 'None', 'Naphtha', '0.00000', '2006', 'Y'
'Feedstock', 'None', 'Naphtha', '0.00000', '2007', 'Y'
'Feedstock', 'None', 'Naphtha', '5.00000', '2008', 'Y'
'Feedstock', 'None', 'Naphtha', '5.00000', '2012', 'Y'
'Feedstock', 'None', 'Naphtha', '5.00000', '2014', 'Y'
'Feedstock', 'None', 'Naphtha', '5.00000', '2015', 'Y'
'Feedstock', 'None', 'Naphtha', '5.00000', '2016', 'Y'
'Feedstock', 'None', 'Naphtha', '5.00000', '2017', 'Y'
'Building Blocks', 'Olefins', 'Ethylene', '5.00000', '2005', 'Y'
'Building Blocks', 'Olefins', 'Ethylene', '5.00000', '2006', 'Y'
like this table and want to fill this data in excel sheet.
excel format is :
2005-Y 2006-Y 2007-Y 2008-Y 2009-Y 2010-Y 2011-Y 2012-Y 2013-Y 2014-Y 2015-Y 2016-Y 2017-Y 2018-Y 2019-Y
Feedstock Naphtha 5 0 0 5 - - - 5 - 5 5 5 5 - -
Building Blocks (a)Olefine Ethylene 5 5 5 5 - - - 5 - 2.5 2.5 2.5 2.5 - -
Propylene 5 5 5 5 - - - 5 - 2.5 2.5 2.5 2.5 - -
Butadiene 5 5 5 5 - - - 5 - 2.5 2.5 2.5 2.5 - -
I tried:
import pymysql
from xlsxwriter.workbook import Workbook
from openpyxl import load_workbook
import openpyxl
from openpyxl.styles import Alignment, Font
sqlconn = ".............."
cursor = sqlconn.cursor()
wb = load_workbook('cpm_auto.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
max_col = (sheet.max_column)
max_row = (sheet.max_row)
for row in range(3,max_row):
for col in range(4,max_col):
periods = sheet.cell(row = 1,column = col).value
period = periods.replace('-Y','')
val = sheet.cell(row = row,column = 3).value
if val == 'Naphtha':
query = "select Value from CPMAI where Product = '%s' and Year = '%s'" %(val,period)
result = cursor.execute(query)
if result > 0:
values = cursor.fetchone()
if len(values) > 0:
prev_value = values[0]
print(prev_value)
sheet.cell(row = row,column = col).value = values[0]
else:
sheet.cell(row=row, column=col).value = prev_value
break
wb.save('cpm_auto.xlsx')
My Code: I tried This code but this code inserting value for the year which having values, but i want to insert all year value from 2005- 2019. please see excel format there is no values for 2009, 2010, 2011, 2013, 2018, 2019 so want to carry forward the previous year value to that year.