При попытке вставить html с фоновым стилем, он не ведет себя так же, как в клиенте Office.
То, что я пытаюсь сделать, на самом деле очень просто.См. Две строки на изображении ниже:
Я просто хочу создать фоновый div, который инкапсулирует оба и будет другого цвета.Попытка кода выглядит примерно так:
// Just to get the selected area in HTML.
Office.context.document.getSelectedDataAsync(
Office.CoercionType.Html,
{
valueFormat: Office.ValueFormat.Formatted
},
function(a)
{
console.log(a.value);
});
Эти журналы вызовов для поддержки приведенного ниже результата:
<HTML>
<HEAD></HEAD>
<BODY>
<div class="OutlineGroup"><div class="OutlineElement Ltr"><div class="ParaWrappingDiv"><p class="Paragraph" xml:lang="EN-US" lang="EN-US" paraid="0" paraeid="{df1d415b-2edd-4266-a550-6d283e1c3eea}{61}" style="font-weight: normal; font-style: normal; vertical-align: baseline; font-family: "Segoe UI", Tahoma, Verdana, Sans-Serif; background-color: transparent; color: windowtext; text-align: left; margin: 0px 0px 10.6667px; padding-left: 0px; padding-right: 0px; text-indent: 0px; font-size: 6pt;"><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="background-color: transparent; font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"><span class="NormalTextRun" style="background-color: inherit;">Testing 1</span></span><span class="EOP" style="font-size: 11pt; line-height: 19.425px; font-family: Calibri, Calibri_MSFontService, sans-serif;"> </span></p></div></div><div class="OutlineElement Ltr"><div class="ParaWrappingDiv"><p class="Paragraph" xml:lang="EN-US" lang="EN-US" paraid="0" paraeid="{df1d415b-2edd-4266-a550-6d283e1c3eea}{63}" style="font-weight: normal; font-style: normal; vertical-align: baseline; font-family: "Segoe UI", Tahoma, Verdana, Sans-Serif; background-color: transparent; color: windowtext; text-align: left; margin: 0px 0px 10.6667px; padding-left: 0px; padding-right: 0px; text-indent: 0px; font-size: 6pt;"><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="background-color: transparent; font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"><span class="NormalTextRun" style="background-color: inherit;">Testing 2</span></span><span class="EOP" style="font-size: 11pt; line-height: 19.425px; font-family: Calibri, Calibri_MSFontService, sans-serif;"> </span></p></div></div></div><span class="WACImageGroupContainer"></span><span class="WACImageGroupContainer"></span><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="background-color: transparent; font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"></span><span class="NormalTextRun" style="background-color: inherit;"></span><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="background-color: transparent; font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"></span><span class="NormalTextRun" style="background-color: inherit;"></span>
</BODY>
</HTML>
Так что теперь - я просто хочу заменить самый внешний div
и поставитьстиль вокруг него.
Office.context.document.setSelectedDataAsync(`<HTML>
<HEAD></HEAD>
<BODY>
<div style="background: green !important"> **<!--most important line-->**
<div class="OutlineGroup"><div class="OutlineElement Ltr"><div class="ParaWrappingDiv"><p class="Paragraph" xml:lang="EN-US" lang="EN-US" paraid="0" paraeid="{b6a47614-e320-4a52-b55f-273b52861109}{81}" style="font-weight: normal; font-style: normal; vertical-align: baseline; font-family: "Segoe UI", Tahoma, Verdana, Sans-Serif; background-color: transparent; color: windowtext; text-align: left; margin: 0px 0px 10.6667px; padding-left: 0px; padding-right: 0px; text-indent: 0px; font-size: 6pt;"><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"><span class="NormalTextRun" style="background-color: inherit;">Testing 1</span></span><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"><span class="NormalTextRun" style="background-color: inherit;"> this string1</span></span><span class="EOP" style="font-size: 11pt; line-height: 19.425px; font-family: Calibri, Calibri_MSFontService, sans-serif;"> </span></p></div></div><div class="OutlineElement Ltr"><div class="ParaWrappingDiv"><p class="Paragraph" xml:lang="EN-US" lang="EN-US" paraid="0" paraeid="{b6a47614-e320-4a52-b55f-273b52861109}{83}" style="font-weight: normal; font-style: normal; vertical-align: baseline; font-family: "Segoe UI", Tahoma, Verdana, Sans-Serif; background-color: transparent; color: windowtext; text-align: left; margin: 0px 0px 10.6667px; padding-left: 0px; padding-right: 0px; text-indent: 0px; font-size: 6pt;"><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"><span class="NormalTextRun" style="background-color: inherit;">Testing 2</span></span><span class="EOP" style="font-size: 11pt; line-height: 19.425px; font-family: Calibri, Calibri_MSFontService, sans-serif;"> </span></p></div></div></div><span class="WACImageGroupContainer"></span><span class="WACImageGroupContainer"></span><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"></span><span class="NormalTextRun" style="background-color: inherit;"></span><span class="TextRun" xml:lang="EN-US" lang="EN-US" style="font-size: 11pt; font-family: Calibri, Calibri_MSFontService, sans-serif; line-height: 19.425px;"></span><span class="NormalTextRun" style="background-color: inherit;"></span></div>
</BODY>
</HTML>`, {coercionType: Office.CoercionType.Html});
});
Если вы проверите внешний div, вы увидите, что у него теперь есть стиль.Однако это приводит к приведенному ниже результату:
, что неверно и не соответствует клиенту Office.
Есть ли обходные пути для этого?
Мне также удалось найти похожие жалобы здесь: https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/suggestions/17898694-office-js-api-setdataasync-not-working-as-suggeste