Что не так делаю?
book_temp = excl.load_workbook(output_temp_file)
page_temp = book_temp[sheet_name]
page_temp.delete_rows(0, row_end+4)
book_temp.save(output_temp_file)
book_temp.close()
book_temp = excl.load_workbook(output_temp_file)
page_temp = book_temp[sheet_name]
page_temp.delete_rows(0, row_end+4)
book_temp.save(output_temp_file)
book_temp.close()
Provi
В Python есть возможность подключаться к SQL, команда передается в виде текста, а можно так же в Excel передать макрос на удаление строк?
Proviпрочитайте файл просто в датафрейм и работайте с ячейками, складывайте, вычитайте.
Или вопрос можно переформулировать: как список merged_cell_ranges, привести к обычном списку, над которым можно совершать операции сложения и вычитания.
ProviТам можно подключиться к самому Excel'ю и через него удалять строки. Там в Windows есть такой механизм подключения к приложениям. Но это такой вариант, что тебе нужен будет Excel на компе и Excel именно той версии. Ну, представь просто, что тебе нужно будет на сервер этот скрипт поставить, чтобы он преобразовывал тысячи этих Excel-файлов в день, а на сервере Excel'я нет и не поставишь его туда, потому что он там не нужен. Питон-то туда поставить можно и нужно.
В Python есть возможность подключаться к SQL, команда передается в виде текста, а можно так же в Excel передать макрос на удаление строк?
xam1816Ему нужно сохранить форматирование ячеек. Хотя бы склеенность этих ячеек. Датафрейм работает только с данными. А с данными можно работать и без всякого pandas'а.
прочитайте файл просто в датафрейм и работайте с ячейками, складывайте, вычитайте.
>>> import openpyxl >>> >>> ifname = 'in.xlsx' >>> >>> workbook = openpyxl.load_workbook(filename=ifname) >>> sheet = workbook['TDSheet'] >>> >>> ranges = sheet.merged_cells.ranges >>> >>> r = ranges[0] >>> r <MergedCellRange AA14:AE14> >>> >>> r.shift(0, -1) >>> r <MergedCellRange AA13:AE13> >>>