I’m a beginner to Powershell and CLI in general, but this task does not need to use either so I’m open to using other tools.

I’m trying to do the following:

  1. Create multiple files from a Word template.
  2. Rename each file based on a list of names found in an Excel/CSV sheet.

Thanks in advance!

  • @purplemonkeymad
    link
    23 months ago

    For csv import, use import-csv and loop on the results:

    Import-csv myfile.csv | foreach-object {
    

    Templates should be easy, just copy the template to a new file with the docx extension. Use one of the columns (in this case “name” as the column header,) from the csv for the name:

        $newname = $_.name + '.docx'
        Copy-item 'template.dotx' $newname
    }
    
    • @[email protected]OP
      link
      fedilink
      13 months ago

      So I’m new to all this. When I enter the first command with my csv file and doc file included, it just opens the word doc. Wasn’t sure what I should do next.

      • @[email protected]OP
        link
        fedilink
        13 months ago

        Actually nevermind that question. Just realized the command was split.

        I’m assuming I need to replace the name portion of the 2nd line. What do I input if the data is a list that starts in A1?

    • @[email protected]OP
      link
      fedilink
      13 months ago

      Hey this worked for me yesterday but now I’m having trouble getting it to work again. It just outputs a Word doc titled ‘.docx’ now.

      • @purplemonkeymad
        link
        23 months ago

        Make sure the columns in your csv are named properly, my code assumes it’s named just “name”

        • @[email protected]OP
          link
          fedilink
          13 months ago

          By the way, what would be the equivalent code when using a text file for the list of names rather than a csv file?