Firstly, note that it is usually not necessary to import users in bulk - to keep your own maintenance work down you should first explore forms of authentication that do not require manual maintenance, such as connecting to existing external databases or letting the users create their own accounts. See the Authentication section in the admin menus.
If you are sure you want to import multiple user accounts from a text file, then you need to format your text file as follows:
Required fieldnames: these fields must be included in the first record, and defined for each user
username, password, firstname, lastname, email
Default fieldnames: these are optional - if they are not included then the values are taken from the primary admin
institution, department, city, country, lang, auth, timezone
Optional fieldnames: all of these are completely optional. The course names are the "shortnames" of the courses - if present then the user will be enrolled as students in those courses. Group names must be associated to the corresponding courses, i.e. group1 to course1, etc.
idnumber, icq, phone1, phone2, address, url, description, mailformat, maildisplay, htmleditor, autosubscribe, course1, course2, course3, course4, course5, group1, group2, group3, group4, group5, type1, type2, type3, type4, type5, role1, role2, role3, role4, role5, emailstop
Here is an example of a valid import file:
username, password, firstname, lastname, email, lang, idnumber, maildisplay, course1, group1, type1
jonest, verysecret, Tom, Jones, firstname.lastname@example.org, en, 3663737, 1, Intro101, Section 1, 1
reznort, somesecret, Trent, Reznor, email@example.com, en_us, 6736733, 0, Advanced202, Section 3, 3
By default Moodle assumes that you will be creating new user accounts, and skips records where the username matches an existing account. However, if you set "Update existing accounts" to Yes, the existing user account will be updated.
When updating existing accounts you can change usernames as well. Set "Allow renames" to Yes and include in your file a field called
Warning: any errors updating existing accounts can affect your users badly. Be careful when using the options to update.