Skip to content

Instantly share code, notes, and snippets.

@psycalc
Last active October 16, 2017 11:48
Show Gist options
  • Save psycalc/bec1c61a58f14fa85ddd21a9145c7b06 to your computer and use it in GitHub Desktop.
Save psycalc/bec1c61a58f14fa85ddd21a9145c7b06 to your computer and use it in GitHub Desktop.
Google app script to convert selection to table
//just add convenient menu to G suit
function onOpen() {
var ui=DocumentApp.getUi();
ui.createMenu('Макросы')
.addItem('SelectionToTable', 'myFunction')
.addItem('ImageFiller','imageFiller')
.addToUi();
//здесь можно дополнить менюшку
};
//main function
//todo dectet delimeter (exp. newline, comma, space and so on)
function myFunction() {
//get instance
var doc = DocumentApp.getActiveDocument();
//get body
var docbody = doc.getBody();
//get selection todo: SELECTSOMETHIN!!!!
var selection = doc.getSelection();
//if (Object.getOwnPropertyNames(selection).length === 0) {
//DocumentApp.getUi().showModalDialog(userInterface, "А выбор мне запили");
//}
//else {
//it's not empty
//get array of lines
var elements = selection.getRangeElements();
//подготовим ячейки для запихивания push
var cells = []; //первые скобки это начало таблицы
//циклимся по элементам выбора
for(var k in elements) {
//такой хитрожопый способ получить текст, просты пути мы не ищем зачем?
var text =elements[k].getElement().editAsText()
// вторые по вложености квадратные скобки это строки, а содержание строк можно в одинарных кавычках писать
// шаблон для таблицы это - [ 'первая ячейка', 'вторая ячейка' ] квадратные скопки в свою очередь начало и конец строки в таблице
cells.push(['',text.getText()]);
}
docbody.appendTable(cells);
//}
}
function imageFiller() {
var doc = DocumentApp.getActiveDocument();
var docBody = doc.getBody();
var w,h;
var ui=DocumentApp.getUi();
h=ui.prompt(
'Width!',
'h:',
ui.ButtonSet.OK_CANCEL).getResponseText();
w=ui.prompt(
'Height!',
'w:',
ui.ButtonSet.OK_CANCEL).getResponseText();
ui.alert("http://placehold.it/"+h+"x"+w);
docBody.appendImage(UrlFetchApp.fetch("http://placehold.it/"+h+"x"+w));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment