<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Excel_Description_Filler_Tool_%F0%9F%93%9D</id>
	<title>Excel Description Filler Tool 📝 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Excel_Description_Filler_Tool_%F0%9F%93%9D"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Excel_Description_Filler_Tool_%F0%9F%93%9D&amp;action=history"/>
	<updated>2026-06-05T09:51:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Excel_Description_Filler_Tool_%F0%9F%93%9D&amp;diff=45&amp;oldid=prev</id>
		<title>BabiSender: Created page with &quot;== Excel Description Filler Tool ==  Automatically populate product descriptions in your Excel spreadsheet using Python. Perfect for e-commerce product imports, inventory management, and bulk data processing.  ----  == What This Tool Does ==  # Reads your Excel file with product names # Matches products to pre-written descriptions # Fills in blank Description cells automatically # Preserves existing descriptions (will not overwrite) # Saves a new Excel file with complete...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Excel_Description_Filler_Tool_%F0%9F%93%9D&amp;diff=45&amp;oldid=prev"/>
		<updated>2026-02-25T06:57:36Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Excel Description Filler Tool ==  Automatically populate product descriptions in your Excel spreadsheet using Python. Perfect for e-commerce product imports, inventory management, and bulk data processing.  ----  == What This Tool Does ==  # Reads your Excel file with product names # Matches products to pre-written descriptions # Fills in blank Description cells automatically # Preserves existing descriptions (will not overwrite) # Saves a new Excel file with complete...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Excel Description Filler Tool ==&lt;br /&gt;
&lt;br /&gt;
Automatically populate product descriptions in your Excel spreadsheet using Python. Perfect for e-commerce product imports, inventory management, and bulk data processing.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== What This Tool Does ==&lt;br /&gt;
&lt;br /&gt;
# Reads your Excel file with product names&lt;br /&gt;
# Matches products to pre-written descriptions&lt;br /&gt;
# Fills in blank Description cells automatically&lt;br /&gt;
# Preserves existing descriptions (will not overwrite)&lt;br /&gt;
# Saves a new Excel file with completed data&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Files Included ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! File !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;description.py&amp;lt;/code&amp;gt; || The main Python script (heavily commented)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;QUICKSTART.md&amp;lt;/code&amp;gt; || Get started in 5 minutes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INSTRUCTIONS.md&amp;lt;/code&amp;gt; || Complete step-by-step guide&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TEMPLATE_GUIDE.md&amp;lt;/code&amp;gt; || Examples and formatting templates&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; || Project overview&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Python 3.7+ (Python 3.9+ recommended)&lt;br /&gt;
* &amp;lt;code&amp;gt;pandas&amp;lt;/code&amp;gt; library (data manipulation)&lt;br /&gt;
* &amp;lt;code&amp;gt;openpyxl&amp;lt;/code&amp;gt; library (Excel file support)&lt;br /&gt;
&lt;br /&gt;
Your Excel file must have these columns:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Item Name&amp;#039;&amp;#039;&amp;#039; – product names to match&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; – column to fill (can be empty)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Quick Start (5 Minutes) ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 – Install Python ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Windows:&amp;#039;&amp;#039;&amp;#039; Download from [https://www.python.org/downloads/ python.org] → check &amp;quot;Add Python to PATH&amp;quot; during installation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Linux (Ubuntu/Debian):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install python3 python3-pip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 – Install Required Libraries ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Windows:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install pandas openpyxl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Linux:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip3 install pandas openpyxl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3 – Get Product Descriptions Using AI ===&lt;br /&gt;
&lt;br /&gt;
Ask Claude or ChatGPT using a prompt like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
I need concise product descriptions (50-80 words each)&lt;br /&gt;
for these products suitable for a professional webstore:&lt;br /&gt;
&lt;br /&gt;
- Product Name 1&lt;br /&gt;
- Product Name 2&lt;br /&gt;
- Product Name 3&lt;br /&gt;
&lt;br /&gt;
Include key specifications, features, and target use cases.&lt;br /&gt;
Format: Professional, B2B tone.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 4 – Organize Your Files ===&lt;br /&gt;
&lt;br /&gt;
Place both files in the &amp;#039;&amp;#039;&amp;#039;same folder&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
📂 Downloads/&lt;br /&gt;
├── description.py&lt;br /&gt;
└── your-data.xlsx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 5 – Configure the Script ===&lt;br /&gt;
&lt;br /&gt;
Open &amp;lt;code&amp;gt;description.py&amp;lt;/code&amp;gt; and update these sections:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Input filename (line 19):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
path = &amp;quot;your-data.xlsx&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Product descriptions (lines 24–50):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
descriptions = {&lt;br /&gt;
    &amp;quot;Product A&amp;quot;: &amp;quot;Description for Product A...&amp;quot;,&lt;br /&gt;
    &amp;quot;Product B&amp;quot;: &amp;quot;Description for Product B...&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 6 – Run the Script ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Windows:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd C:\Users\YourName\Downloads&lt;br /&gt;
python description.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Linux:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Downloads&lt;br /&gt;
python3 description.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 7 – Check Output ===&lt;br /&gt;
&lt;br /&gt;
Look for the file: &amp;lt;code&amp;gt;webstore_import_with_descriptions.xlsx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Description Dictionary Format ==&lt;br /&gt;
&lt;br /&gt;
=== Basic Template ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
descriptions = {&lt;br /&gt;
    &amp;quot;Product Name 1&amp;quot;: &amp;quot;Short description here.&amp;quot;,&lt;br /&gt;
    &amp;quot;Product Name 2&amp;quot;: &amp;quot;Another short description.&amp;quot;,&lt;br /&gt;
    &amp;quot;Product Name 3&amp;quot;: &amp;quot;Yet another description.&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multi-Line Template (Recommended) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
descriptions = {&lt;br /&gt;
    &amp;quot;Product Name 1&amp;quot;: (&lt;br /&gt;
        &amp;quot;First part of the description. &amp;quot;&lt;br /&gt;
        &amp;quot;Second part of the description. &amp;quot;&lt;br /&gt;
        &amp;quot;Third part continues here.&amp;quot;&lt;br /&gt;
    ),&lt;br /&gt;
    &amp;quot;Product Name 2&amp;quot;: (&lt;br /&gt;
        &amp;quot;Another product with a longer description &amp;quot;&lt;br /&gt;
        &amp;quot;that spans multiple lines for better readability.&amp;quot;&lt;br /&gt;
    ),&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Common Mistakes ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! ❌ Wrong !! ✅ Correct&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;quot;Dell OptiPlex&amp;quot;&amp;lt;/code&amp;gt; (too generic, won&amp;#039;t match) || &amp;lt;code&amp;gt;&amp;quot;Dell OptiPlex 7010&amp;quot;&amp;lt;/code&amp;gt; (exact match)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Dell OptiPlex 7010: &amp;quot;...&amp;quot;&amp;lt;/code&amp;gt; (missing quotes on key) || &amp;lt;code&amp;gt;&amp;quot;Dell OptiPlex 7010&amp;quot;: &amp;quot;...&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Missing comma after entry || Each entry ends with a comma&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== The Full Script ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import pandas as pd&lt;br /&gt;
&lt;br /&gt;
# ============================================================================&lt;br /&gt;
# CONFIGURATION SECTION - UPDATE THESE VALUES&lt;br /&gt;
# ============================================================================&lt;br /&gt;
&lt;br /&gt;
# STEP 1: Change this to your Excel filename&lt;br /&gt;
path = &amp;quot;251106 netgate selling price.xlsx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# STEP 2: Add your product descriptions here&lt;br /&gt;
descriptions = {&lt;br /&gt;
    &amp;quot;Netgate 8300 TAA&amp;quot;: (&lt;br /&gt;
        &amp;quot;pfSense+ 1U security gateway with Intel Xeon D-1733NT (8-core/16-thread) and Intel AVX-512. &amp;quot;&lt;br /&gt;
        &amp;quot;Ports: 4×10G SFP+, 4×1G SFP, 3×2.5G RJ-45; PCIe expansion up to 10/25/100G. &amp;quot;&lt;br /&gt;
        &amp;quot;TAA-compliant hardware; built for medium/large sites, MSPs, and data centers.&amp;quot;&lt;br /&gt;
    ),&lt;br /&gt;
    # ADD MORE PRODUCTS HERE...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# STEP 3 (Optional): Change output filename&lt;br /&gt;
output_filename = &amp;quot;webstore_import_with_descriptions.xlsx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# ============================================================================&lt;br /&gt;
# MAIN SCRIPT&lt;br /&gt;
# ============================================================================&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;Loading Excel file: {path}&amp;quot;)&lt;br /&gt;
df = pd.read_excel(path, sheet_name=0)&lt;br /&gt;
print(f&amp;quot;✓ Loaded {df.shape[0]} rows and {df.shape[1]} columns&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def fill_desc(row):&lt;br /&gt;
    name = str(row.get(&amp;quot;Item Name&amp;quot;, &amp;quot;&amp;quot;)).strip()&lt;br /&gt;
    existing = row.get(&amp;quot;Description&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    if pd.notna(existing) and str(existing).strip():&lt;br /&gt;
        return existing&lt;br /&gt;
    return descriptions.get(name, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\nProcessing descriptions...&amp;quot;)&lt;br /&gt;
df[&amp;quot;Description&amp;quot;] = df.apply(fill_desc, axis=1)&lt;br /&gt;
&lt;br /&gt;
filled_count = df[&amp;quot;Description&amp;quot;].notna().sum()&lt;br /&gt;
print(f&amp;quot;✓ Filled {filled_count} descriptions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;\nSaving to: {output_filename}&amp;quot;)&lt;br /&gt;
df.to_excel(output_filename, index=False)&lt;br /&gt;
print(&amp;quot;✓ File saved successfully!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Issue !! Solution&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ModuleNotFoundError: pandas&amp;lt;/code&amp;gt; || Run: &amp;lt;code&amp;gt;pip install pandas openpyxl&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;FileNotFoundError&amp;lt;/code&amp;gt; || Check Excel file is in the same folder as the script&lt;br /&gt;
|-&lt;br /&gt;
| Descriptions not filling || Product names must match exactly (case and spacing)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Permission denied&amp;lt;/code&amp;gt; || Close the Excel file if it is currently open&lt;br /&gt;
|-&lt;br /&gt;
| Character encoding issues (e.g. Ã— instead of ×) || Save the &amp;lt;code&amp;gt;.py&amp;lt;/code&amp;gt; file with UTF-8 encoding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
# Always test with 2–3 products before bulk processing&lt;br /&gt;
# Keep a backup of your original Excel file&lt;br /&gt;
# Product names must match character-for-character&lt;br /&gt;
# Review the generated file before importing&lt;br /&gt;
# Use UTF-8 encoding to prevent character display issues&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Workflow Summary ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
1. Get product names from Excel&lt;br /&gt;
        ↓&lt;br /&gt;
2. Generate descriptions using AI&lt;br /&gt;
        ↓&lt;br /&gt;
3. Format as Python dictionary&lt;br /&gt;
        ↓&lt;br /&gt;
4. Update description.py&lt;br /&gt;
        ↓&lt;br /&gt;
5. Run script&lt;br /&gt;
        ↓&lt;br /&gt;
6. Check output file&lt;br /&gt;
        ↓&lt;br /&gt;
7. Import to your system&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Metric !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Processing Speed || ~1,000 rows per second&lt;br /&gt;
|-&lt;br /&gt;
| File Size Limit || Tested up to 100,000 rows&lt;br /&gt;
|-&lt;br /&gt;
| Memory Usage || &amp;lt; 100 MB for typical files&lt;br /&gt;
|-&lt;br /&gt;
| Excel Compatibility || .xlsx, .xlsm formats&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>BabiSender</name></author>
	</entry>
</feed>