for row in range(1, 10):
    ws.cell('%s%s' % (col, row)).value = '%s%s' % (col, row)
column_index = 5
new_cells = {}
ws.column_dimensions = {}
for coordinate, cell in ws._cells.items():
    column_letter, row = coordinate_from_string(coordinate)
column = column_index_from_string(column_letter)
if column >= column_index:
    column += 1
column_letter = get_column_letter(column)
coordinate = '%s%s' % (column_letter, row)
new_cells[coordinate] = Cell(ws, column_letter, row, cell.value)
ws._cells = new_cells
wb.save(filename=dest_filename)
Вставить столбец с помощью openpyxl