Копировать и вставить из Excel в редактируемый элемент браузера - PullRequest
0 голосов
/ 28 сентября 2019

В настоящее время у меня есть документ Excel с большим количеством форматирования (например, курсивом, полужирным шрифтом и подчеркиванием) в нескольких ячейках.Я создал пользовательское веб-приложение для копирования и вставки этих стилизованных данных, чтобы они могли оставаться стилизованными в пользовательском интерфейсе.

Сначала я подумал об использовании элемента <textarea/>, но понял, что это не сохранитмоделирование.Проработав мой Google-Fu, я натолкнулся на то, как добавить атрибут contenteditable, чтобы сказать <div>, а затем пользователь может использовать команду + B для полужирного текста и т. Д. В базовой строке просто есть простые HTML-теги <b> или <I>, который отлично справляется со всем.Кроме того, казалось, что они могут копировать и вставлять из Excel, и это сохранит стиль.Эта идея была обнаружена здесь: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Editable_content

К сожалению, при копировании и вставке фактическая строка, которая хранится, содержит много разметки Excel (я думаю, xhtml) ... которая затем будет отправлена ​​на сервер.и создаст много других проблем / хлопот.

ex:


This is going to be a big long text Item. 
Somethings will be bold. 
Other things will be italiciszed. 
Lets see if when I copy it into the interface, we actually run into any issues….....

Я ожидал:

This is going to be a big long text Item. 
<b>Somethings will be bold.</b> 
<I>Other things will be italiciszed.</I>
Lets see if when I copy it into the interface, we actually run into any issues….....

Вместо этого я получил:






<style>
<!--table
    {mso-displayed-decimal-separator:"\.";
    mso-displayed-thousand-separator:"\,";}
@page
    {margin:.75in .7in .75in .7in;
    mso-header-margin:.3in;
    mso-footer-margin:.3in;}
.font0
    {color:black;
    font-size:12.0pt;
    font-weight:400;
    font-style:normal;
    text-decoration:none;
    font-family:Calibri, sans-serif;
    mso-font-charset:0;}
.font5
    {color:black;
    font-size:12.0pt;
    font-weight:700;
    font-style:normal;
    text-decoration:none;
    font-family:Calibri, sans-serif;
    mso-font-charset:0;}
.font6
    {color:black;
    font-size:12.0pt;
    font-weight:400;
    font-style:italic;
    text-decoration:none;
    font-family:Calibri, sans-serif;
    mso-font-charset:0;}
tr
    {mso-height-source:auto;}
col
    {mso-width-source:auto;}
br
    {mso-data-placement:same-cell;}
td
    {padding-top:1px;
    padding-right:1px;
    padding-left:1px;
    mso-ignore:padding;
    color:black;
    font-size:12.0pt;
    font-weight:400;
    font-style:normal;
    text-decoration:none;
    font-family:Calibri, sans-serif;
    mso-font-charset:0;
    mso-number-format:General;
    text-align:general;
    vertical-align:bottom;
    border:none;
    mso-background-source:auto;
    mso-pattern:auto;
    mso-protection:locked visible;
    white-space:nowrap;
    mso-rotate:0;}
-->
</style>




<table border="0" cellpadding="0" cellspacing="0" width="87" style="width: 65pt;">
 <colgroup><col width="87" style="width:65pt">
 </colgroup><tbody><tr height="21" style="height:16.0pt">
<!--StartFragment-->
  <td height="21" width="87" style="height:16.0pt;width:65pt">This is going to be a
  big long text Item. <font class="font5">Somethings will be bold.</font><font class="font0"> </font><font class="font6">Other things will be italiciszed.
  Lets see if when I copy it into the interface, we actually run into any
  issues….....</font></td>
<!--EndFragment-->
 </tr>
</tbody></table>

Я подумал, может быть, пытаясь разобрать сегмент между <StartFragment></EndFragment> и затем пытаться удалить все «лишние» HTML-теги ... но потом я увидел, как комментарии стиля ссылаются на CSSпредметы наверху.У кого-нибудь есть элегантный способ производства того, что я ожидал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...