Hi Matt I hope you did not have a heart attack from my $15, I wouldn't want Interpol onto me. Anyway here's 2 scripts the first one places threaded text frame on every page you can then place the excel data in the way described on the link above. The second script puts not threaded text frames on every page and places the contents of an array into the frames for each new section the next item in the array fill the frames until the next section and so on. To fill the array with the contents of the excel file, place the file in a new indesign document then useing ctrl f replacing tabs / returns for ", " the is a quote mark, coma, quote mark copy this new contents to the script instead of fred","Harry","Trevor at the begining of the script. Both scripts give the text frame an object style "Trevor's Object Style" with a paragraph syle "Trevor's Paragraph Style" Script 1 // Script 1 for semi-automatic data import // http://forums.adobe.com/thread/1042222?tstart=0 myDoc=app.documents[0]; if (myDoc.pages.length>1) app.doScript("main()", ScriptLanguage.javascript, undefined, UndoModes.FAST_ENTIRE_SCRIPT, "Make Text Frames for Semi Manual Excel Data Entry"); function main() { pageBounds=[]; pageBounds[0]=myDoc.pages.item(0).bounds; pageBounds[1]=myDoc.pages.item(1).bounds; topMargin=myDoc.pages.item(0).marginPreferences.top; leftMargin=myDoc.pages.item(0).marginPreferences.left; rightMargin=myDoc.pages.item(0).marginPreferences.right; leftMargin2=myDoc.pages.item(1).marginPreferences.left; rightMargin2=myDoc.pages.item(1).marginPreferences.right; frameBounds=[]; frameBounds[0]=[0,0,0,0] frameBounds[1]=[0,0,0,0]; frameBounds[0][0]=topMargin-8+pageBounds[0][0]; // top y of text frame of odd pages change as needed frameBounds[0][2]=topMargin+pageBounds[0][0]; // bottom y of text frame of odd pages change as needed frameBounds[1][0]=topMargin-8+pageBounds[1][0]; // top y of text frame of even pages change as needed frameBounds[1][2]=topMargin+pageBounds[1][0]; // bottom y of text frame of even pages change as needed frameBounds[0][1]=leftMargin+pageBounds[0][1]; // left x of text frame of odd pages change as needed frameBounds[0][3]=pageBounds[0][3]-rightMargin; // right x of text frame of odd pages change as needed frameBounds[1][1]=pageBounds[1][1]+leftMargin2; // left x of text frame of even pages change as needed frameBounds[1][3]=pageBounds[1][3]-rightMargin2; // right x of text frame of even pages change as needed tps=myDoc.paragraphStyles.add({name: "Trevor's Paragraph Style",justification: Justification.AWAY_FROM_BINDING_SIDE}); tos=myDoc.objectStyles.add({name: "Trevor's Object Style", appliedParagraphStyle: tps, enableParagraphStyle: 1}); oldTextFrame=myDoc.pages.item(0).textFrames.add({geometricBounds: frameBounds[0], label: "Trevor's Text Frame", appliedObjectStyle: tos}); for (c=1; c<myDoc.pages.length; c++) { newTextFrame=myDoc.pages.item(c).textFrames.add({label: "Trevor's Text Frame", geometricBounds: frameBounds[(c%2)], previousTextFrame: oldTextFrame, appliedObjectStyle: tos}); oldTextFrame=newTextFrame; } } Script 2 // Script 2 for automatic data import // http://forums.adobe.com/thread/1042222?tstart=0 myDoc=app.documents[0]; myHeaders=["fred","Harry","Trevor"]; if (myDoc.pages.length>1) app.doScript("main()", ScriptLanguage.javascript, undefined, UndoModes.FAST_ENTIRE_SCRIPT, "Make Text Frames for Semi Manual Excel Data Entry"); function main() { pageBounds=[]; pageBounds[0]=myDoc.pages.item(0).bounds; pageBounds[1]=myDoc.pages.item(1).bounds; topMargin=myDoc.pages.item(0).marginPreferences.top; leftMargin=myDoc.pages.item(0).marginPreferences.left; rightMargin=myDoc.pages.item(0).marginPreferences.right; leftMargin2=myDoc.pages.item(1).marginPreferences.left; rightMargin2=myDoc.pages.item(1).marginPreferences.right; $.writeln(pageBounds[0]+"\r\r"+pageBounds[1]+"\r\r"+topMargin+"\r"+leftMargin+"\r"+rightMargin+"\r"+leftMargin2+"\r"+rightMargin2); frameBounds=[]; frameBounds[0]=[0,0,0,0] frameBounds[1]=[0,0,0,0]; frameBounds[0][0]=topMargin-8+pageBounds[0][0]; // top y of text frame of odd pages change as needed frameBounds[0][2]=topMargin+pageBounds[0][0]; // bottom y of text frame of odd pages change as needed frameBounds[1][0]=topMargin-8+pageBounds[1][0]; // top y of text frame of even pages change as needed frameBounds[1][2]=topMargin+pageBounds[1][0]; // bottom y of text frame of even pages change as needed frameBounds[0][1]=leftMargin+pageBounds[0][1]; // left x of text frame of odd pages change as needed frameBounds[0][3]=pageBounds[0][3]-rightMargin; // right x of text frame of odd pages change as needed frameBounds[1][1]=pageBounds[1][1]+leftMargin2; // left x of text frame of even pages change as needed frameBounds[1][3]=pageBounds[1][3]-rightMargin2; // right x of text frame of even pages change as needed tps=myDoc.paragraphStyles.add({name: "Trevor's Paragraph Style",justification: Justification.AWAY_FROM_BINDING_SIDE}); tos=myDoc.objectStyles.add({name: "Trevor's Object Style", appliedParagraphStyle: tps, enableParagraphStyle: 1}); oldTextFrame=myDoc.pages.item(0).textFrames.add({geometricBounds: frameBounds[0], label: "Trevor's Text Frame", appliedObjectStyle: tos}); oldMaster=myDoc.pages.item(0).appliedMaster; oldTextFrame.parentStory.contents=myHeaders[0]; arrayCount=0; for (c=1; c<myDoc.pages.length; c++) { newTextFrame=myDoc.pages.item(c).textFrames.add({label: "Trevor's Text Frame", geometricBounds: frameBounds[(c%2)], appliedObjectStyle: tos}); newMaster=myDoc.pages.item(c).appliedMaster; (oldMaster!=newMaster && arrayCount!=myHeaders.length-1) ? arrayCount++:0; newTextFrame.parentStory.contents=myHeaders[arrayCount]; } } I wouldn't say no to the $15 Trevor
... View more