фона:openpyxl: Добавление данных в первую пустую ячейку столбца
У меня есть книги Excel, содержащие метаданные, которые распространяются через различные рабочие листы. Мне нужно взять соответствующие столбцы данных из разных листов и объединить их в один рабочий лист. С помощью следующего кода мне удалось создать новый рабочий лист и добавить к нему данные.
# Open workbook and assign worksheet
try:
wb = openpyxl.load_workbook(metadata)
shtEditionLNM = wb.worksheets[0] # Edition date & latest NM
shtChartsTitles = wb.worksheets[1] # Charts & Titles
shtDepthHeight = wb.worksheets[4] # Depth & heights
shtChartProj = wb.worksheets[7] # Chart Projection
except:
raise SystemExit(0)
new = wb.create_sheet()
new.title = "MT_CHARTS INFO"
new.sheet_properties.tabColor = "1072BA"
shtMeta = wb.get_sheet_by_name("MT_CHARTS INFO")
for row in shtChartsTitles.rows:
shtMeta.append([row[0].value, row[1].value, row[2].value, row[4].value])
for row in shtEditionLNM.rows:
shtMeta.append([row[3].value, row[4].value])
wb.save('OW - Quarterly Extract of Metadata for Raster Charts Dec 2015.xlsx')
Это работает без ошибок, и я могу видеть данные, сохраненные в моей новой книге. Однако, когда я запускаю второй цикл и добавляю значения, они добавляются в ячейку A3169, тогда как я действительно хочу, чтобы они заполнялись из E1.
Мой вопрос сводится к тому, что я могу добавить новый столбец вместо новой строки?
Заранее благодарен!
Мой совет - прекратить использование '.cell (coord = ...)' для чего-либо, поскольку это теперь устарело. –
@CharlieClark спасибо, не знал об этом. Я теперь использовал предложенный метод и вижу, что должен использовать это во-первых, чтобы избежать форматирования строк! Он отлично работает. P.S Я только что понял, что вы поддерживаете openpyxl, поэтому я хотел бы поблагодарить вас, поскольку это была огромная помощь в моей роли, у вас или у плагина есть страница пожертвования? – lamb
Рад, что вы сочтете это полезным. У нас нет конкретной страницы пожертвований, но мы принимаем их охотно. Лучше всего напишите мне по электронной почте. –