Document Types & Use Cases

How to Generate Catalog Pages from Spreadsheet Data and Product Photos

Product and merchandising teams can turn a structured Excel sheet and a folder of product photos into tidy catalog pages without manual copy‑pasting. The method runs locally on a Windows PC, keeps files on your machine, and produces both Word and PDF outputs in one batch.

Catalog pages
Word + optional PDF
Text + photo tags
Local Windows workflow
7-day free trial on the 3-month plan • 14-day refund policy • Microsoft Word Desktop required • Local processing

From Excel to PDF in minutes

Insert product photos automatically

Local, secure, no cloud See pricing

Quick answer

The fastest way to create catalog pages is to let a VBA macro read each row of a spreadsheet, open a Word template, replace text placeholders, insert the matching product photo, and then save the result as a Word file and a PDF. All of these steps happen on the user’s computer, so no files leave the organisation.

In plain language

The macro takes the product name, SKU and image filename from the sheet, finds the corresponding picture on disk, drops it into a bookmark, and writes out both a DOCX and a PDF. One run processes the whole list, eliminating repetitive manual work.

Why this matters

Catalog creation is a repetitive, error‑prone chore when it relies on manual copy‑paste and hand‑inserting images. Automating the process protects brand consistency, speeds time‑to‑market, and frees the merchandising team to focus on content quality rather than file fiddling.

Reduce manual effort

When each spreadsheet row maps to a finished page, a single macro can generate dozens or hundreds of documents with a click. The team no longer has to open Word for every product, type details, or locate images one by one, which cuts labour hours dramatically.

Maintain brand consistency

All visual elements—logos, signatures, product photos—are inserted from a controlled folder and placed at predefined bookmarks. This guarantees that every catalog page follows the exact layout and resolution rules, preventing drift that often occurs with ad‑hoc manual edits.

What goes wrong

A manual approach quickly shows its limits: missing images, mismatched filenames, and inconsistent formatting become common sources of frustration.

Manual copy‑paste workflow

Team members copy values from Excel into Word, hunt for the right photo on a shared drive, resize it manually, and then save the file. Errors such as wrong SKUs, missing pictures, or inconsistent font styles are frequent, and each mistake requires time‑consuming rework.

Automated VBA workflow

A single VBA routine reads each row, verifies that the referenced image exists, inserts it at a bookmark, applies the correct DPI handling, and saves both DOCX and PDF. The macro aborts with a clear message if a photo is missing, ensuring no incomplete catalog pages slip through.

Automation eliminates the guesswork and keeps the output reliable.

What the workflow looks like

The end‑to‑end workflow stitches together three simple assets—a spreadsheet, a Word template, and a photos folder—then runs a macro that ties them together in a repeatable batch.

Step 1

Prepare the source sheet

Create an Excel worksheet where each row represents one catalog page. Include columns for product name, SKU, and the exact image filename (without path). Keep the header row and make sure the data types are consistent.

Step 2

Design the Word template

Insert text placeholders like <> and <> wherever the data should appear. Add bookmarks named photo_product (or similar) where the product picture will go. Save the template as a .docx file in the same folder as the spreadsheet.

Step 3

Collect product photos

Place every product image in a single folder, using the filenames referenced in the Excel column. JPG works for standard photos; PNG is required for transparent logos or stamps. Ensure the folder is accessible from the macro’s working directory.

Step 4

Run the VBA macro

Open the Excel workbook, press ALT + F8, and run the GenerateCatalog macro. The code opens the template for each row, swaps the placeholders, inserts the matching picture, saves a DOCX, and then exports a PDF to a sibling output folder.

Step 5

Verify and distribute

After the macro finishes, browse the Word and PDF output folders. Spot‑check a few files for correct data, proper image placement and resolution, then move the finished catalog pages to the publishing system or share them with the sales team.

A visual example

Simple visual illustration.

How to Generate Catalog Pages from Spreadsheet Data and Product Photos

AI-generated illustration for article.

A grounded VBA example

The macro below demonstrates a grounded VBA solution that ties Excel data, a Word template and a photo library together without any external tools.

What the macro does

It loops through every data row, opens the template, replaces text placeholders, inserts the product picture at a bookmark, saves both DOCX and PDF versions, and reports any missing images.

Sub GenerateCatalog()
    Dim xl As Workbook, ws As Worksheet
    Dim wdApp As Object, wdDoc As Object
    Dim tmplPath As String, outFolder As String, imgFolder As String
    Dim lastRow As Long, i As Long
    Dim prodName As String, sku As String, imgName As String
    Dim imgPath As String
    
    Set xl = ThisWorkbook
    Set ws = xl.Sheets("CatalogData")
    
    tmplPath = xl.Path & "\Template.docx"
    outFolder = xl.Path & "\Output\Word"
    imgFolder = xl.Path & "\Photos"
    
    ' Ensure output folder exists
    If Dir(outFolder, vbDirectory) = "" Then MkDir outFolder
    
    Set wdApp = CreateObject("Word.Application")
    wdApp.Visible = False
    
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    For i = 2 To lastRow ' assume header row
        prodName = ws.Cells(i, "A").Value
        sku = ws.Cells(i, "B").Value
        imgName = ws.Cells(i, "C").Value ' filename without extension
        
        Set wdDoc = wdApp.Documents.Open(tmplPath, ReadOnly:=False)
        
        ' Replace placeholders in the document
        With wdDoc.Content.Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Text = "<<ProductName>>"
            .Replacement.Text = prodName
            .Execute Replace:=2, Forward:=True, Wrap:=1
            .Text = "<<SKU>>"
            .Replacement.Text = sku
            .Execute Replace:=2, Forward:=True, Wrap:=1
        End With
        
        ' Insert product photo
        imgPath = imgFolder & "\" & imgName & ".jpg"
        If Dir(imgPath) <> "" Then
            wdDoc.Bookmarks("photo_product").Range.InlineShapes.AddPicture _
                FileName:=imgPath, LinkToFile:=False, SaveWithDocument:=True
        End If
        
        ' Save as DOCX
        Dim docFile As String
        docFile = outFolder & "\" & sku & ".docx"
        wdDoc.SaveAs2 docFile, 16 ' wdFormatXMLDocument
        
        ' Export PDF to sibling folder
        Dim pdfFolder As String
        pdfFolder = xl.Path & "\Output\PDF"
        If Dir(pdfFolder, vbDirectory) = "" Then MkDir pdfFolder
        wdDoc.ExportAsFixedFormat OutputFileName:=pdfFolder & "\" & sku & ".pdf", _
            ExportFormat:=17 ' wdExportFormatPDF
        
        wdDoc.Close SaveChanges:=False
    Next i
    
    wdApp.Quit
    Set wdDoc = Nothing
    Set wdApp = Nothing
    
    MsgBox "Catalog generation complete.", vbInformation
End Sub

Adjust the placeholder names or folder paths to match your own project structure before running.

Where VBA starts to strain

While VBA handles most catalog‑generation scenarios well, there are practical limits you should be aware of, especially when scaling to large product catalogs or integrating more complex layout logic.

Performance with large image sets

If the photo folder contains thousands of high‑resolution images, opening and inserting each picture can become slow and consume considerable memory. Consider pre‑resizing images to the recommended 150 DPI for standard photos, or batch the run in smaller chunks.

Error‑handling boundaries

The macro aborts only when a referenced image file is missing. It does not automatically correct mismatched column headers or malformed Excel data, so a quick data‑validation step before execution is advisable.

Maintainability and debugging

As the macro grows (e.g., adding conditional formatting or multi‑page layouts), debugging becomes harder. Keep the code modular by extracting reusable routines (e.g., InsertImage, ReplacePlaceholders) and add verbose logging to a text file. Version‑control the VBA module in a shared repository to track changes and roll back if needed.

A calmer way to standardize the workflow

DocxForge Pro builds on this manual VBA pattern and adds a purpose‑built batch engine that removes the need to write or maintain code.

DocxForge Pro 7 days free, then $38 every 3 months • 14-day refund after purchase

For repeatable business documents such as reports contracts certificates letters and packs DocxForge Pro can act as the local layer between spreadsheet data Word templates and final output. It supports selected photo-folder workflows and special tags such as photo_logo photo_signature and photo_stamp.

This fits teams that produce repeatable reports contracts certificates forms letters or document packs from structured data. This is especially useful when image handling is part of the document workflow not a separate manual step. The article’s VBA example shows the spreadsheet-side automation while DocxForge Pro fits as the document-generation layer outside the code example itself.

Start Free 7-Day Trial

DocxForge Pro batch engine

Runs the same Excel‑to‑Word‑to‑PDF pipeline using a graphical configuration, handles image caching, and creates both DOCX and PDF outputs without writing VBA. It also reports missing files in a clear summary.

Built‑in image handling

The product stages images to the correct DPI, supports special tags like photo_logo and photo_stamp, and stores a local cache so repeated runs are faster and more reliable.

Frequently asked questions

Common questions about turning spreadsheet rows and photos into catalog pages

Is this workflow suitable for generating catalog pages from spreadsheet data and product photos?

Yes. The pattern assumes each spreadsheet row contains the data needed for one page and that a matching photo exists in a designated folder. As long as the template uses bookmarks or placeholders, the macro can produce a complete DOCX and PDF for every record.

What source data has to stay consistent before generation starts?

Column headers must remain stable (e.g., ProductName, SKU, PhotoFile). The photo filenames referenced in the sheet should exactly match the files on disk, including case sensitivity on Windows‑based shares. Keeping a single source of truth for image resolution (150 DPI standard) also avoids unexpected scaling.

How do I adapt the template without breaking the workflow?

Add or rename placeholders only in pairs: update the Excel column heading, modify the Find‑Replace strings in the macro, and adjust the bookmark name if you change image locations. Running the macro on a single test row after each change confirms that the mapping still works.

Can this process scale across many records and templates?

The VBA macro can handle hundreds of rows, but very large batches may benefit from splitting the work into smaller groups or using DocxForge Pro, which provides a dedicated batch runner and better memory management for massive image collections.

A more repeatable way to handle this workflow 7 days free, then $38 every 3 months • 14-day refund after purchase
Run a single macro or DocxForge batch for the whole catalogStore images in a central, version‑controlled folderGenerate both DOCX and PDF outputs automaticallyValidate source data before each run
Start Free 7-Day Trial

Topics and Tags

Browse related topic clusters and workflow tags connected to this article.

Document Types & Use Cases Images

Continue Reading

Explore more articles related to this workflow, problem, or document automation topic.