使用 Excel 数据进行抽奖

使用 Excel 数据进行抽奖

我有一个 excel 电子表格,里面有用户的名字、姓氏以及上个月他们正确回答日常琐事问题的次数。我想要做的是根据抽奖系统选出获胜者,用户每正确回答一个问题就会获得一个参赛资格。我有办法用 Java 来实现,但如果可能的话,我想用 excel 来实现。以下是我的 Java 代码,如果它有助于解释:

public static void main(String[] args) throws FileNotFoundException {
    File file = new File("TriviaParticipantsList.txt");
    Scanner scanner = new Scanner(file);
    int x = 0;
    int j = 0;
    int i = 0;

    while(scanner.hasNextLine())
    {
        String line = scanner.nextLine();
        Scanner scan = new Scanner(line);

        i = scan.nextInt();
        String name = scan.nextLine();
        if(line.charAt(0)==0)
        {
            //do nothing if no questions were answered
        }
        else
        {
            for(j=0; j<i; j++)
            {
                System.out.print(j+x); //Print out "ticket number"
                System.out.println(" " + name); //Print out owner name of ticket
            }
        }
        x=x+i;
    }
    scanner.close();
    System.out.println(x); //Verify correct number of entries
    int winner = (int) (Math.random()*x); //Select random number based on number of entries
    System.out.println(winner); //Display value, look through list to find who number belongs to!
}

任何帮助是极大的赞赏!

答案1

我可以想象(就像“我没有尝试过”)正确答案的累积总和与随机数查找相结合可能会达到目的。

Name | Correct | Sum
P1        3       3
P2        2       5
P3        4       9

创建一个带有随机数的单元格,可能还有一个按钮来触发重新计算,或者让它用随机数的公式填充单元格或类似的东西。

然后,您应该能够执行返回“P2”的查找,例如,如果您抽到数字 4。编辑:查看查找函数的帮助,了解如何使其返回正确的值,我相信它可以满足您的要求。否则,您可能需要使用辅助列来解决这个问题。

随机数当然必须从 1 到累积和的最大值。

希望这能有所帮助 ;-)

相关内容