Как создать таблицу в документе Word, открытом в OpenOffice, используя REALbasic в Mac OS

введите описание изображения здесьЭтот код я использовал для создания двоичного файла:

dim eFile as FolderItem
dim output as BinaryStream
eFile= GetSaveFolderItem("application/vnd.ms-word", "mydocument.doc")
output.write  "User Name: "+" User Name field"+chr(13)
output.write  "Website: "+" Website field"+chr(13)
output.close

Я хочу вставить табличный формат в этот документ слова.

2 ответа

Вот более подробная информация о том, как сделать это для Mac OS X:

Немного познакомьтесь с приложением "Редактор AppleScript".

Введите следующий скрипт в новое окно скрипта:

tell application "Microsoft Word"
    set d to active document
    get content of text object of d
end tell

Если у вас есть текстовый документ, открытый в Word, и затем вы запускаете этот скрипт, он должен напечатать его простой текст в области результатов под кодом скрипта.

Таким же образом вы можете изменить текст в документе Word:

tell application "Microsoft Word"
    set d to active document
    set content of text object of d to "new text"
end tell

Это основы для чтения и записи текста в Word с помощью Applescript. Научитесь добавлять текст к существующему тексту или изменять шрифты и т. Д. Вам нужно прочитать "Словарь" Word, который вы можете открыть в редакторе AppleScript, см. Меню "Файл".

Для получения дополнительной помощи с AppleScript, посетите http://www.macscripter.net/

Теперь, чтобы использовать это с REALbasic, создайте этот скрипт:

on run {newContent}
    tell application "Microsoft Word"
        set d to active document
        set content of text object of d to newContent
    end tell
end run

Сохраните его как файл сценария (расширение файла.scpt), например, как "SetContentInActiveWordDocument.scpt"

Затем перетащите этот файл скрипта в ваш проект REALbasic, он будет отображаться как элемент с именем "SetContentInActiveWordDocument" курсивом.

Теперь вы можете вызывать этот SetContentInActiveWordDocument как функцию, передавая ей строку.

Например, напишите:

eFile.Launch() // this should open an existing word file if it exists in "eFile"
SetContentInActiveWordDocument("the new text") // replaces the text in the opened word file

Однако для создания таблицы в текстовом документе все становится сложнее. Таким образом, вы можете передавать только строки и числа в скрипт из RB, поэтому если у вас есть массив значений, которые вы хотите поместить в таблицу, вам придется преобразовать значения массива в строку с уникальными разделителями, передайте эту строку к сценарию, в котором строка затем снова разделяется на отдельные поля.

Это также очень помогает, если вы покупаете "Отладчик сценариев" - это не только позволяет вам пошагово проходить через сценарии, но также предоставляет "Проводник", который позволяет вам видеть все значения работающего приложения, что значительно упрощает определение того, что вам нужно. хочу получить доступ. Я использовал Script Debugger, чтобы увидеть, как добраться до контента, просто используя его Explorer. Без этого вам придется разбираться в словаре сценариев, что обычно довольно сложно, если вы не имеете опыта в этом.

(потом)

Я попытался добавить или даже просто прочитать таблицу в Word 2008. Я не могу заставить работать что-либо, ссылающееся на таблицы в "активном документе", несмотря на то, что нашел в сети несколько примеров, которые предполагают, что это должно работать, например так:

tell application "Microsoft Word"
    get table 1 of active document
end tell

Я не могу сказать, является ли это общей проблемой с Word 2008 или с моей конкретной установкой. И у меня нет других версий для тестирования, извините. Это оставляет вас в поиске таких примеров в Google и посмотрите, сможете ли вы это понять. В любом случае, сначала разработайте и протестируйте свой код в Script Editor, прежде чем пытаться заставить его работать с REALbasic.

Кроме того, обратитесь к Google по "Справочнику по AppleScript для Word 2004", который представляет собой довольно полное руководство по использованию Word с AppleScript.

Real Studio может напрямую общаться с MS Word и Excel, но не на стороне Mac (или, по крайней мере, в современных версиях Real Studio и MS Office).

Чтобы сделать то же самое на Mac через Real Studio, вам нужно научиться делать это через AppleScript, который работает через Real Studio. Я не разработчик Applescript, поэтому я не могу вам помочь.

Другие вопросы по тегам