Google Apps Script - Docs. Converting table cells with formatting to HTML
I'm creating a Google Script add-on in Docs (not Sheets) which allows people to input content into predefined table cells, which I then later on need to parse and turn into HTML.
I'm almost there, thanks to this answer: https://stackoverflow.com/a/47313357/2586977 and the GoogleDoc2HTML script it mentions. I can get out everything I need, except for the simple formatting that some content will require – bold, italics and links.
The method described in the linked article uses getTextAttributeIndices()
to work out where these attribute changes are located, then splices the corresponding HTML tags into the output to replicate the formatting. It's kind of long-winded, but it works!
The problem I have is that getTextAttributeIndices()
will only work on [Text][2]
elements, and I'm trying to get the indices of content in a [TableCell][3]
element.
The console gives me the error message:
TypeError: Cannot find function getTextAttributeIndices in object TableCell.
If do myTableCell.getText()
first, I lose all the formatting.
google-apps-script
add a comment |
I'm creating a Google Script add-on in Docs (not Sheets) which allows people to input content into predefined table cells, which I then later on need to parse and turn into HTML.
I'm almost there, thanks to this answer: https://stackoverflow.com/a/47313357/2586977 and the GoogleDoc2HTML script it mentions. I can get out everything I need, except for the simple formatting that some content will require – bold, italics and links.
The method described in the linked article uses getTextAttributeIndices()
to work out where these attribute changes are located, then splices the corresponding HTML tags into the output to replicate the formatting. It's kind of long-winded, but it works!
The problem I have is that getTextAttributeIndices()
will only work on [Text][2]
elements, and I'm trying to get the indices of content in a [TableCell][3]
element.
The console gives me the error message:
TypeError: Cannot find function getTextAttributeIndices in object TableCell.
If do myTableCell.getText()
first, I lose all the formatting.
google-apps-script
Check the reference documentation. There are probably methods on theTableCell
instance that allow you to retrieve the cell's attributes.
– Dimu Designs
Nov 13 at 0:29
There is certainlyTableCell.getAttributes()
but the result from that only apply to the whole cell, and there isn't a corresponding method to get the attribute indices. In my case, the content in the cell won't be all bold, or all italic, or all one link, but a block of text potentially containing all of those mixed together.
– axemonkey
Nov 13 at 10:20
add a comment |
I'm creating a Google Script add-on in Docs (not Sheets) which allows people to input content into predefined table cells, which I then later on need to parse and turn into HTML.
I'm almost there, thanks to this answer: https://stackoverflow.com/a/47313357/2586977 and the GoogleDoc2HTML script it mentions. I can get out everything I need, except for the simple formatting that some content will require – bold, italics and links.
The method described in the linked article uses getTextAttributeIndices()
to work out where these attribute changes are located, then splices the corresponding HTML tags into the output to replicate the formatting. It's kind of long-winded, but it works!
The problem I have is that getTextAttributeIndices()
will only work on [Text][2]
elements, and I'm trying to get the indices of content in a [TableCell][3]
element.
The console gives me the error message:
TypeError: Cannot find function getTextAttributeIndices in object TableCell.
If do myTableCell.getText()
first, I lose all the formatting.
google-apps-script
I'm creating a Google Script add-on in Docs (not Sheets) which allows people to input content into predefined table cells, which I then later on need to parse and turn into HTML.
I'm almost there, thanks to this answer: https://stackoverflow.com/a/47313357/2586977 and the GoogleDoc2HTML script it mentions. I can get out everything I need, except for the simple formatting that some content will require – bold, italics and links.
The method described in the linked article uses getTextAttributeIndices()
to work out where these attribute changes are located, then splices the corresponding HTML tags into the output to replicate the formatting. It's kind of long-winded, but it works!
The problem I have is that getTextAttributeIndices()
will only work on [Text][2]
elements, and I'm trying to get the indices of content in a [TableCell][3]
element.
The console gives me the error message:
TypeError: Cannot find function getTextAttributeIndices in object TableCell.
If do myTableCell.getText()
first, I lose all the formatting.
google-apps-script
google-apps-script
asked Nov 12 at 16:38
axemonkey
132
132
Check the reference documentation. There are probably methods on theTableCell
instance that allow you to retrieve the cell's attributes.
– Dimu Designs
Nov 13 at 0:29
There is certainlyTableCell.getAttributes()
but the result from that only apply to the whole cell, and there isn't a corresponding method to get the attribute indices. In my case, the content in the cell won't be all bold, or all italic, or all one link, but a block of text potentially containing all of those mixed together.
– axemonkey
Nov 13 at 10:20
add a comment |
Check the reference documentation. There are probably methods on theTableCell
instance that allow you to retrieve the cell's attributes.
– Dimu Designs
Nov 13 at 0:29
There is certainlyTableCell.getAttributes()
but the result from that only apply to the whole cell, and there isn't a corresponding method to get the attribute indices. In my case, the content in the cell won't be all bold, or all italic, or all one link, but a block of text potentially containing all of those mixed together.
– axemonkey
Nov 13 at 10:20
Check the reference documentation. There are probably methods on the
TableCell
instance that allow you to retrieve the cell's attributes.– Dimu Designs
Nov 13 at 0:29
Check the reference documentation. There are probably methods on the
TableCell
instance that allow you to retrieve the cell's attributes.– Dimu Designs
Nov 13 at 0:29
There is certainly
TableCell.getAttributes()
but the result from that only apply to the whole cell, and there isn't a corresponding method to get the attribute indices. In my case, the content in the cell won't be all bold, or all italic, or all one link, but a block of text potentially containing all of those mixed together.– axemonkey
Nov 13 at 10:20
There is certainly
TableCell.getAttributes()
but the result from that only apply to the whole cell, and there isn't a corresponding method to get the attribute indices. In my case, the content in the cell won't be all bold, or all italic, or all one link, but a block of text potentially containing all of those mixed together.– axemonkey
Nov 13 at 10:20
add a comment |
2 Answers
2
active
oldest
votes
@axemonkey Your solution will work but it's brittle since the documentation does not guarantee that the paragraph element will always be a child element at index 0. Rummaged through the documentation and found this method:
TabelCell::findElement(elementType)
You can use that method to fetch child elements of a given type. It returns a RangeElement
which wraps the child element so you have to call the following method:
RangeElement::getElement()
So using the above, a more reliable way to get the paragraph element is this:
var paragraph = tableCell.findElement(DocumentApp.ElementType.PARAGRAPH).getElement();
To get the Text
element in the paragraph you can use findElement()
on the paragraph instance as well:
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement();
So bringing it all together you'd get:
var paragraph = tableCell.findElement(DocumentApp.ElementType.PARAGRAPH).getElement();
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement();
var indices = text.getAttributeIndices();
There's more code to write, but you'll have more readable code and its less likely break since it does not rely on child indices.
PS: When you invoke the getElement()
method on a RangeElement
its returns the element, but as far as the Apps Script GUI is concerned you only get auto-completion for properties associated with the Element
interface. If you want to get auto-completion for the properties and methods specific to a given element type, then leverage one of the many type casting methods defined in the Element interface. These methods are always prefixed with as
. So to get code-completion for the text element you could write code like this:
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement().asText();
Fantastic, thank you! I had a feeling my solution could be improved, but I just couldn't see the wood for the trees any more. Cheers!
– axemonkey
Nov 13 at 14:43
@axemonkey Here's a trick I use when I get to that point...just skim the official reference documentation - don't look for anything too specific - just peruse Class and Functions descriptions that pertain to a given built-in service (Document, Spreadsheet, Form etc.) and see what jumps out at you...You'd be surprised at how effective this is.
– Dimu Designs
Nov 13 at 15:02
One thing I found when I implemented this, is that thefindElement()
calls don't findPARAGRAPH
orTEXT
– I needed to use the fullDocumentApp.ElementType.PARAGRAPH
andDocumentApp.ElementType.TEXT
inside the parentheses. But it's working now, and more readable and sturdy. Thanks again!
– axemonkey
Nov 13 at 15:26
You're correct. Updated my response accordingly...and added a little extra in the process.
– Dimu Designs
Nov 13 at 15:29
Awesomeness. Thanks for the help! 😄
– axemonkey
Nov 13 at 15:46
add a comment |
I finally cracked it, so I'm sharing the answer in case anyone else runs into this.
getTextAttributeIndices()
only works on Text
elements, not TableCell
elements.
BUT it turns out that when you create a TableCell
element and enter content into it, it implicitly creates a Paragraph
element and that contains a Text
element.
Therefore this does NOT work:
myTableCell.getTextAttributeIndices()
but this DOES work:
myTableCell.getChild(0).getChild(0).getTextAttributeIndices()
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266481%2fgoogle-apps-script-docs-converting-table-cells-with-formatting-to-html%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
@axemonkey Your solution will work but it's brittle since the documentation does not guarantee that the paragraph element will always be a child element at index 0. Rummaged through the documentation and found this method:
TabelCell::findElement(elementType)
You can use that method to fetch child elements of a given type. It returns a RangeElement
which wraps the child element so you have to call the following method:
RangeElement::getElement()
So using the above, a more reliable way to get the paragraph element is this:
var paragraph = tableCell.findElement(DocumentApp.ElementType.PARAGRAPH).getElement();
To get the Text
element in the paragraph you can use findElement()
on the paragraph instance as well:
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement();
So bringing it all together you'd get:
var paragraph = tableCell.findElement(DocumentApp.ElementType.PARAGRAPH).getElement();
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement();
var indices = text.getAttributeIndices();
There's more code to write, but you'll have more readable code and its less likely break since it does not rely on child indices.
PS: When you invoke the getElement()
method on a RangeElement
its returns the element, but as far as the Apps Script GUI is concerned you only get auto-completion for properties associated with the Element
interface. If you want to get auto-completion for the properties and methods specific to a given element type, then leverage one of the many type casting methods defined in the Element interface. These methods are always prefixed with as
. So to get code-completion for the text element you could write code like this:
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement().asText();
Fantastic, thank you! I had a feeling my solution could be improved, but I just couldn't see the wood for the trees any more. Cheers!
– axemonkey
Nov 13 at 14:43
@axemonkey Here's a trick I use when I get to that point...just skim the official reference documentation - don't look for anything too specific - just peruse Class and Functions descriptions that pertain to a given built-in service (Document, Spreadsheet, Form etc.) and see what jumps out at you...You'd be surprised at how effective this is.
– Dimu Designs
Nov 13 at 15:02
One thing I found when I implemented this, is that thefindElement()
calls don't findPARAGRAPH
orTEXT
– I needed to use the fullDocumentApp.ElementType.PARAGRAPH
andDocumentApp.ElementType.TEXT
inside the parentheses. But it's working now, and more readable and sturdy. Thanks again!
– axemonkey
Nov 13 at 15:26
You're correct. Updated my response accordingly...and added a little extra in the process.
– Dimu Designs
Nov 13 at 15:29
Awesomeness. Thanks for the help! 😄
– axemonkey
Nov 13 at 15:46
add a comment |
@axemonkey Your solution will work but it's brittle since the documentation does not guarantee that the paragraph element will always be a child element at index 0. Rummaged through the documentation and found this method:
TabelCell::findElement(elementType)
You can use that method to fetch child elements of a given type. It returns a RangeElement
which wraps the child element so you have to call the following method:
RangeElement::getElement()
So using the above, a more reliable way to get the paragraph element is this:
var paragraph = tableCell.findElement(DocumentApp.ElementType.PARAGRAPH).getElement();
To get the Text
element in the paragraph you can use findElement()
on the paragraph instance as well:
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement();
So bringing it all together you'd get:
var paragraph = tableCell.findElement(DocumentApp.ElementType.PARAGRAPH).getElement();
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement();
var indices = text.getAttributeIndices();
There's more code to write, but you'll have more readable code and its less likely break since it does not rely on child indices.
PS: When you invoke the getElement()
method on a RangeElement
its returns the element, but as far as the Apps Script GUI is concerned you only get auto-completion for properties associated with the Element
interface. If you want to get auto-completion for the properties and methods specific to a given element type, then leverage one of the many type casting methods defined in the Element interface. These methods are always prefixed with as
. So to get code-completion for the text element you could write code like this:
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement().asText();
Fantastic, thank you! I had a feeling my solution could be improved, but I just couldn't see the wood for the trees any more. Cheers!
– axemonkey
Nov 13 at 14:43
@axemonkey Here's a trick I use when I get to that point...just skim the official reference documentation - don't look for anything too specific - just peruse Class and Functions descriptions that pertain to a given built-in service (Document, Spreadsheet, Form etc.) and see what jumps out at you...You'd be surprised at how effective this is.
– Dimu Designs
Nov 13 at 15:02
One thing I found when I implemented this, is that thefindElement()
calls don't findPARAGRAPH
orTEXT
– I needed to use the fullDocumentApp.ElementType.PARAGRAPH
andDocumentApp.ElementType.TEXT
inside the parentheses. But it's working now, and more readable and sturdy. Thanks again!
– axemonkey
Nov 13 at 15:26
You're correct. Updated my response accordingly...and added a little extra in the process.
– Dimu Designs
Nov 13 at 15:29
Awesomeness. Thanks for the help! 😄
– axemonkey
Nov 13 at 15:46
add a comment |
@axemonkey Your solution will work but it's brittle since the documentation does not guarantee that the paragraph element will always be a child element at index 0. Rummaged through the documentation and found this method:
TabelCell::findElement(elementType)
You can use that method to fetch child elements of a given type. It returns a RangeElement
which wraps the child element so you have to call the following method:
RangeElement::getElement()
So using the above, a more reliable way to get the paragraph element is this:
var paragraph = tableCell.findElement(DocumentApp.ElementType.PARAGRAPH).getElement();
To get the Text
element in the paragraph you can use findElement()
on the paragraph instance as well:
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement();
So bringing it all together you'd get:
var paragraph = tableCell.findElement(DocumentApp.ElementType.PARAGRAPH).getElement();
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement();
var indices = text.getAttributeIndices();
There's more code to write, but you'll have more readable code and its less likely break since it does not rely on child indices.
PS: When you invoke the getElement()
method on a RangeElement
its returns the element, but as far as the Apps Script GUI is concerned you only get auto-completion for properties associated with the Element
interface. If you want to get auto-completion for the properties and methods specific to a given element type, then leverage one of the many type casting methods defined in the Element interface. These methods are always prefixed with as
. So to get code-completion for the text element you could write code like this:
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement().asText();
@axemonkey Your solution will work but it's brittle since the documentation does not guarantee that the paragraph element will always be a child element at index 0. Rummaged through the documentation and found this method:
TabelCell::findElement(elementType)
You can use that method to fetch child elements of a given type. It returns a RangeElement
which wraps the child element so you have to call the following method:
RangeElement::getElement()
So using the above, a more reliable way to get the paragraph element is this:
var paragraph = tableCell.findElement(DocumentApp.ElementType.PARAGRAPH).getElement();
To get the Text
element in the paragraph you can use findElement()
on the paragraph instance as well:
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement();
So bringing it all together you'd get:
var paragraph = tableCell.findElement(DocumentApp.ElementType.PARAGRAPH).getElement();
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement();
var indices = text.getAttributeIndices();
There's more code to write, but you'll have more readable code and its less likely break since it does not rely on child indices.
PS: When you invoke the getElement()
method on a RangeElement
its returns the element, but as far as the Apps Script GUI is concerned you only get auto-completion for properties associated with the Element
interface. If you want to get auto-completion for the properties and methods specific to a given element type, then leverage one of the many type casting methods defined in the Element interface. These methods are always prefixed with as
. So to get code-completion for the text element you could write code like this:
var text = paragraph.findElement(DocumentApp.ElementType.TEXT).getElement().asText();
edited Nov 13 at 15:33
answered Nov 13 at 13:57
Dimu Designs
2,5732411
2,5732411
Fantastic, thank you! I had a feeling my solution could be improved, but I just couldn't see the wood for the trees any more. Cheers!
– axemonkey
Nov 13 at 14:43
@axemonkey Here's a trick I use when I get to that point...just skim the official reference documentation - don't look for anything too specific - just peruse Class and Functions descriptions that pertain to a given built-in service (Document, Spreadsheet, Form etc.) and see what jumps out at you...You'd be surprised at how effective this is.
– Dimu Designs
Nov 13 at 15:02
One thing I found when I implemented this, is that thefindElement()
calls don't findPARAGRAPH
orTEXT
– I needed to use the fullDocumentApp.ElementType.PARAGRAPH
andDocumentApp.ElementType.TEXT
inside the parentheses. But it's working now, and more readable and sturdy. Thanks again!
– axemonkey
Nov 13 at 15:26
You're correct. Updated my response accordingly...and added a little extra in the process.
– Dimu Designs
Nov 13 at 15:29
Awesomeness. Thanks for the help! 😄
– axemonkey
Nov 13 at 15:46
add a comment |
Fantastic, thank you! I had a feeling my solution could be improved, but I just couldn't see the wood for the trees any more. Cheers!
– axemonkey
Nov 13 at 14:43
@axemonkey Here's a trick I use when I get to that point...just skim the official reference documentation - don't look for anything too specific - just peruse Class and Functions descriptions that pertain to a given built-in service (Document, Spreadsheet, Form etc.) and see what jumps out at you...You'd be surprised at how effective this is.
– Dimu Designs
Nov 13 at 15:02
One thing I found when I implemented this, is that thefindElement()
calls don't findPARAGRAPH
orTEXT
– I needed to use the fullDocumentApp.ElementType.PARAGRAPH
andDocumentApp.ElementType.TEXT
inside the parentheses. But it's working now, and more readable and sturdy. Thanks again!
– axemonkey
Nov 13 at 15:26
You're correct. Updated my response accordingly...and added a little extra in the process.
– Dimu Designs
Nov 13 at 15:29
Awesomeness. Thanks for the help! 😄
– axemonkey
Nov 13 at 15:46
Fantastic, thank you! I had a feeling my solution could be improved, but I just couldn't see the wood for the trees any more. Cheers!
– axemonkey
Nov 13 at 14:43
Fantastic, thank you! I had a feeling my solution could be improved, but I just couldn't see the wood for the trees any more. Cheers!
– axemonkey
Nov 13 at 14:43
@axemonkey Here's a trick I use when I get to that point...just skim the official reference documentation - don't look for anything too specific - just peruse Class and Functions descriptions that pertain to a given built-in service (Document, Spreadsheet, Form etc.) and see what jumps out at you...You'd be surprised at how effective this is.
– Dimu Designs
Nov 13 at 15:02
@axemonkey Here's a trick I use when I get to that point...just skim the official reference documentation - don't look for anything too specific - just peruse Class and Functions descriptions that pertain to a given built-in service (Document, Spreadsheet, Form etc.) and see what jumps out at you...You'd be surprised at how effective this is.
– Dimu Designs
Nov 13 at 15:02
One thing I found when I implemented this, is that the
findElement()
calls don't find PARAGRAPH
or TEXT
– I needed to use the full DocumentApp.ElementType.PARAGRAPH
and DocumentApp.ElementType.TEXT
inside the parentheses. But it's working now, and more readable and sturdy. Thanks again!– axemonkey
Nov 13 at 15:26
One thing I found when I implemented this, is that the
findElement()
calls don't find PARAGRAPH
or TEXT
– I needed to use the full DocumentApp.ElementType.PARAGRAPH
and DocumentApp.ElementType.TEXT
inside the parentheses. But it's working now, and more readable and sturdy. Thanks again!– axemonkey
Nov 13 at 15:26
You're correct. Updated my response accordingly...and added a little extra in the process.
– Dimu Designs
Nov 13 at 15:29
You're correct. Updated my response accordingly...and added a little extra in the process.
– Dimu Designs
Nov 13 at 15:29
Awesomeness. Thanks for the help! 😄
– axemonkey
Nov 13 at 15:46
Awesomeness. Thanks for the help! 😄
– axemonkey
Nov 13 at 15:46
add a comment |
I finally cracked it, so I'm sharing the answer in case anyone else runs into this.
getTextAttributeIndices()
only works on Text
elements, not TableCell
elements.
BUT it turns out that when you create a TableCell
element and enter content into it, it implicitly creates a Paragraph
element and that contains a Text
element.
Therefore this does NOT work:
myTableCell.getTextAttributeIndices()
but this DOES work:
myTableCell.getChild(0).getChild(0).getTextAttributeIndices()
add a comment |
I finally cracked it, so I'm sharing the answer in case anyone else runs into this.
getTextAttributeIndices()
only works on Text
elements, not TableCell
elements.
BUT it turns out that when you create a TableCell
element and enter content into it, it implicitly creates a Paragraph
element and that contains a Text
element.
Therefore this does NOT work:
myTableCell.getTextAttributeIndices()
but this DOES work:
myTableCell.getChild(0).getChild(0).getTextAttributeIndices()
add a comment |
I finally cracked it, so I'm sharing the answer in case anyone else runs into this.
getTextAttributeIndices()
only works on Text
elements, not TableCell
elements.
BUT it turns out that when you create a TableCell
element and enter content into it, it implicitly creates a Paragraph
element and that contains a Text
element.
Therefore this does NOT work:
myTableCell.getTextAttributeIndices()
but this DOES work:
myTableCell.getChild(0).getChild(0).getTextAttributeIndices()
I finally cracked it, so I'm sharing the answer in case anyone else runs into this.
getTextAttributeIndices()
only works on Text
elements, not TableCell
elements.
BUT it turns out that when you create a TableCell
element and enter content into it, it implicitly creates a Paragraph
element and that contains a Text
element.
Therefore this does NOT work:
myTableCell.getTextAttributeIndices()
but this DOES work:
myTableCell.getChild(0).getChild(0).getTextAttributeIndices()
answered Nov 13 at 11:01
axemonkey
132
132
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266481%2fgoogle-apps-script-docs-converting-table-cells-with-formatting-to-html%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Check the reference documentation. There are probably methods on the
TableCell
instance that allow you to retrieve the cell's attributes.– Dimu Designs
Nov 13 at 0:29
There is certainly
TableCell.getAttributes()
but the result from that only apply to the whole cell, and there isn't a corresponding method to get the attribute indices. In my case, the content in the cell won't be all bold, or all italic, or all one link, but a block of text potentially containing all of those mixed together.– axemonkey
Nov 13 at 10:20