Я пытаюсь вставить данные в таблицу Excel по данным таблицы MySQL.
'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'
, как эта таблица и хотите заполнить эти данные в листе Excel.
Формат Excel:
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 - -
Я пытался:
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')
Мой код:
Я пробовал этот код, но этот код вставлял значение для года, который имеет значения, но я хочу вставить значение всего года с 2005 по 2019 год. Пожалуйста, смотрите формат Excel, нет значений для 2009, 2010, 2011, 2013, 2018, 2019, так хочу перенести значение предыдущего года в этот год.