Записать данные в определенный столбец со случайно сгенерированным именем пользователя, используя openpyxl - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь создать сценарий с использованием openpyxl, который может автоматически заполнять определенный столбец в файле Excel со случайно сгенерированными именами пользователей. Это мой код на данный момент:

import random
import openpyxl

path = "E:\\Desktop\\"

wb = openpyxl.load_workbook('names.xlsx')
sheet = wb.active

def random_names():
    for x in range (0, 9):
        color = ["Red", "Green", "Blue", "White", "Black", "Yellow", "Purple", "Orange", "Pink"]
        animal = ["Cat", "Dog", "Snake", "Mouse", "Tiger", "Leopard", "Moose", "Wolf", "Bear"]
        number = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"]

        randomColor = random.randrange(0, len(color))
        randomAnimal = random.randrange(0, len(animal))
        randomNumber = random.randrange(0, len(number))

        name = "Username: " + color[randomColor] + animal[randomAnimal] + number[randomNumber]

list = [random_names()]

for row in sheet.iter_rows(min_row=1, max_col=5, max_row=2):
    for cell in row:
        sheet.append(list)

wb.save('usernames.xlsx')

Пример файла Excel

Я не уверен, стоит ли использовать здесь iter_rows. Я пытался использовать диапазон ячеек, таких как ws ['C1': 'C8'], но это не сработало. По сути, я хочу заполнить ячейку C1-C8 случайными именами пользователей, используя функцию random_names.

Помощь будет принята с благодарностью! (извините, если я медленно отвечаю)

1 Ответ

0 голосов
/ 04 мая 2019

Сейчас ваша функция ничего не возвращает.Попробуйте вот так:

def random_names():
    names = list()
    for x in range (0, 9):
        color = ["Red", "Green", "Blue", "White", "Black", "Yellow", "Purple", "Orange", "Pink"]
        animal = ["Cat", "Dog", "Snake", "Mouse", "Tiger", "Leopard", "Moose", "Wolf", "Bear"]
        number = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"]

        randomColor = random.randrange(0, len(color))
        randomAnimal = random.randrange(0, len(animal))
        randomNumber = random.randrange(0, len(number))

        name = "Username: " + color[randomColor] + animal[randomAnimal] + number[randomNumber]
        names.append(name)
    return names    

list = random_names()
...