Saturday, December 16, 2017

#1 2017-11-23 09:03:29 am

EHCB
Member
From:: UK
Registered: 2017-11-23
Posts: 3
Website

Preserving bold/italic formatting when grabbing text from Excel

Hi all, I've been building little Applescript projects to speed up my workflow on various design tasks for about year now and this is my first time I've had to resort to making my own thread here instead of poring over other people's.

My goal to take the text of an Excel cell and transfer it into an InDesign document, preserving all the instances of bold and italic text, preferably without coding in copying/pasting keyboard shortcuts.

I'd include some of my failed attempts to make this work, but I don't think any of them were even close.

Most of my morning was spent trying to find out how one would write in import options for placing one cel of an Excel file into a document (like you can in the visual interface) but I couldn't find a single thing on it.

Hope someone can help and thanks for your time! smile


Filed under: Indesign, excel, formatting, Bold

Offline

 

#2 2017-11-24 07:57:32 am

EHCB
Member
From:: UK
Registered: 2017-11-23
Posts: 3
Website

Re: Preserving bold/italic formatting when grabbing text from Excel

I've figured something out: Setting Indesign's properties to 'paste all information', copying a cell from Excel onto the clipboard, using 'paste' in InDesign to create a whole new text frame then manipulating that into the position I need.

How my solution looks (for further refinement suggestions or for anyone googling the same problem). In order to actually reference the pasted textbook I needed to create a new empty layer to house it and pull it from there. If anyone knows a more efficient way I'd be interested!

Applescript:



tell application "Microsoft Excel"
   tell mySpreadsheet
       goto reference ("A1")
       tell application "System Events"
           tell process "Microsoft Excel"
               keystroke "c" using command down
               delay 0.2 -- wait for key stroke entry
           end tell
       end tell
   end tell
end tell


tell application "Adobe InDesign CC 2018"

   set Pastelayer to make layer at myDocument with properties {name:"Pasted"}
   paste
   set pastedTextBox to first text frame of Pastelayer
   move pastedTextBox to layer "Layer 1" of myDocument
   delete Pastelayer

   set geometric bounds of pastedTextBox to {whatever}

end tell

EDIT True to previous experiences, I'm finding the keystroke coding method massively unreliable with the clipboard only updating with what it's supposed to a certain percent of the time. Does anyone know a better way to get the data I need onto the clipboard?

Last edited by EHCB (2017-11-24 09:48:35 am)

Offline

 

Board footer

Powered by FluxBB

RSS (new topics) RSS (active topics)