Snippet "spreadsheet data to variables"

{note: preview=no}

{rows=split(datatoprocess, "\n")}
{data=map(rows, item -> map(split(item, "\t"), item -> trim(item)))}
{items=[row[1]=["item 1"=row[2], "item 2"=row[3], "item 3"=row[4]] for row in data]}

{endnote: trim=right}

Data Source:

{formmenu: name=source; default=Paragraph Field; Clipboard}

{if: source=="Paragraph Field"; trim=right}
{datatoprocess=fielddata; trim=right}
Paragraph Field:

(all data below is fictional and intended purely for illustrative purposes)
{formparagraph: cols=80; rows=5; default=
Client 1 Cecil Martin 4237 Turnpike Drive, Marathon Shores, Florida(FL), 33052 256-437-4731
Client 2 Lorelei Snyder 1835 Tori Lane, Salt Lake City, Utah(UT), 84111 801-594-5480
Client 3 Wilona Newman 4475 Boundary Street, Middleburg, Florida(FL), 32068 904-589-5935
Client 4 Leroy Arnold 272 Rockford Road, Longville, Louisiana(LA), 70652 774-847-8290
Client 5 Lee Tillery 4438 Oak Way, Daykin, Nebraska(NE), 68338 402-446-0086
; name=fielddata}

{elseif: source=="Clipboard"; trim=right}
{datatoprocess={clipboard}; trim=right}

{endif: trim=right}

{formmenu: name=choice; values={=catch(keys(items), "")}}

{validity=catch(items[choice], "Invalid Data"); trim=right}

{if: validity=="Invalid Data"; trim=right}
Invalid Data - Clipboard data must be in the form of one or more rows with four tab-separated columns as when copied from a spreadsheet (see image below snippet).

{else: trim=right}

Name: {=items[choice]["item 1"]}
Address: {=items[choice]["item 2"]}
Phone Number: {=items[choice]["item 3"]}{endif}