3

我有用户需要从 word(或 excel)复制并粘贴到 textarea 以显示在具有背景的内部网页上(因此我不能使用数据图片,因为背景不会显示)。他们复制的文本有颜色和标准字体。

有没有一种简单的方法让用户从 word/excel 复制到 textarea 并保持格式?

下面是他们从 word 复制并微调颜色和间距后使用的文本示例:

<table align="center" border="0">
    <tbody>
        <tr>
            <td>
                <table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="margin: auto auto auto 4.65pt; width: 422pt; border-collapse: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;" width="563">
                    <tbody>
                        <tr style="height: 33.75pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
                            <td colspan="2" nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 422pt; height: 33.75pt; background-color: transparent;" width="563">
                                <p align="center" class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri">Day</font></span></b></font></p>
                            </td>
                        </tr>
                        <tr style="height: 33.75pt; mso-yfti-irow: 1;">
                            <td colspan="2" nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 422pt; height: 33.75pt; background-color: transparent;" width="563">
                                <p align="center" class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri">Date<o:p></o:p></font></span></b></font></p>
                            </td>
                        </tr>
                        <tr style="height: 33.75pt; mso-yfti-irow: 2;">
                            <td colspan="2" nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 422pt; height: 33.75pt; background-color: transparent;" width="563">
                                <p align="center" class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri">OSP #</font></span></b></font></p>
                            </td>
                        </tr>
                        <tr style="height: 33.75pt; mso-yfti-irow: 3;">
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 126.95pt; height: 33.75pt; background-color: transparent;" width="169">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri">TIME1<o:p></o:p></font></span></b></font></p>
                            </td>
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 295.05pt; height: 33.75pt;" width="393">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri"><span style="mso-spacerun: yes;">&nbsp;</span>- Activity 1<o:p></o:p></font></span></b></font></p>
                            </td>
                        </tr>

                        <tr style="height: 33.75pt; mso-yfti-irow: 4;">
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 126.95pt; height: 33.75pt; background-color: transparent;" width="169">
                                <font size="160">&nbsp;</font></td>
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 295.05pt; height: 33.75pt;" width="393">
                                <p class="MsoNormal" style="margin: 0in 0in -10pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri"><span style="mso-spacerun: yes;">&nbsp;</span>- Activity 1B<o:p></o:p></font></span></b></font></p>
                            </td>
                        </tr>

                        <tr style="height: 33.75pt; mso-yfti-irow: 6;">
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 126.95pt; height: 33.75pt; background-color: transparent;" width="169">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri">Time2<o:p></o:p></font></span></b></font></p>
                            </td>

                            <td nowrap="nowrap" style="background: rgb(146, 205, 220); border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 295.05pt; height: 33.75pt;" width="393">
                                <p class="MsoNormal" style="margin: 0in 0in 7pt;margin-top:7pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri"><span style="mso-spacerun: yes;">&nbsp;</span>- Actvity 2<o:p></o:p></font></span></b></font></p>
                            </td>
                        </tr>
                        <tr style="height: 33.75pt; mso-yfti-irow: 6;">
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 126.95pt; height: 33.75pt; background-color: transparent;" width="169">
                                <font size="160">&nbsp;</font></td>
                            <td nowrap="nowrap" style="background: rgb(250, 191, 143); border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 295.05pt; height: 33.75pt;" width="393">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri"><span style="mso-spacerun: yes;">&nbsp;</span>- Activity 2B<o:p></o:p></font></span></b></font></p>
                            </td>   
                        </tr>
                        <tr style="height: 33.75pt; mso-yfti-irow: 7;">
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 126.95pt; height: 33.75pt; background-color: transparent;" width="169">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri">Time3<o:p></o:p></font></span></b></font></p>
                            </td>
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 295.05pt; height: 33.75pt; background-color: transparent;" width="393">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri"><span style="mso-spacerun: yes;">&nbsp;</span>- Activity3<o:p></o:p></font></span></b></font></p>
                            </td>
                        </tr>
                        <tr style="height: 33.75pt; mso-yfti-irow: 8;">
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 126.95pt; height: 33.75pt; background-color: transparent;" width="169">
                                <font size="160">&nbsp;</font></td>
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 295.05pt; height: 33.75pt; background-color: transparent;" width="393">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri"><span style="mso-spacerun: yes;">&nbsp;</span>- Activity 3B<o:p></o:p></font></span></b></font></p>
                            </td>
                        </tr>
                        <tr style="height: 33.75pt; mso-yfti-irow: 10;">
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 126.95pt; height: 33.75pt; background-color: transparent;" width="169">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri">Time4<o:p></o:p></font></span></b></font></p>
                            </td>
                            <td nowrap="nowrap" style="background: rgb(250, 191, 143); border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 295.05pt; height: 33.75pt;" width="393">
                                <p class="MsoNormal" style="margin: 0in 0in 7pt;margin-top:7pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri"><span style="mso-spacerun: yes;">&nbsp;</span>- Activity 4<o:p></o:p></font></span></b></font></p>
                            </td>
                        </tr>
                        <tr style="height: 33.75pt; mso-yfti-irow: 10;">
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 126.95pt; height: 33.75pt; background-color: transparent;" width="169">
                                <font size="160">&nbsp;</font></td>
                            <td nowrap="nowrap" style="background: rgb(146, 205, 220); border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 295.05pt; height: 33.75pt;" width="393">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri"><span style="mso-spacerun: yes;">&nbsp;</span>- Activity 4B<o:p></o:p></font></span></b></font></p>
                            </td>
                        </tr>
                        <tr style="height: 33.75pt; mso-yfti-irow: 11;">
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 126.95pt; height: 33.75pt; background-color: transparent;" width="169">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri">Time5<o:p></o:p></font></span></b></font></p>
                            </td>
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 295.05pt; height: 33.75pt;" width="393">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri"><span style="mso-spacerun: yes;">&nbsp;</span>- Activity 5<o:p></o:p></font></span></b></font></p>
                            </td>
                        </tr>
                        <tr style="height: 33.75pt; mso-yfti-irow: 12; mso-yfti-lastrow: yes;">
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 126.95pt; height: 33.75pt; background-color: transparent;" width="169">
                                <font size="160">&nbsp;</font></td>
                            <td nowrap="nowrap" style="border-color: rgb(240, 240, 240); padding: 0in 5.4pt; width: 295.05pt; height: 33.75pt;" width="393">
                                <p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;">
                                    <font size="160"><b><span new="" style="font-size: 24pt; mso-ascii-font-family: Calibri;" times=""><font face="Calibri"><span style="mso-spacerun: yes;">&nbsp;</span>- Activity 5B<o:p></o:p></font></span></b></font></p>
                            </td>
                        </tr>
                    </tbody>
                </table>

            </td>
        </tr>
    </tbody>
</table>
4

2 回答 2

2

这是一个非常复杂的过程,更像是编写应用程序,而不是解决简单的复制/粘贴操作。如果您希望它在浏览器中工作,它还将涉及 JavaScript、插件或 Flash。

由于您没有提到任何关于重新发明轮子的事情,我认为最好的答案是使用支持“从单词粘贴”的富文本编辑器,例如YUI 富文本编辑器TinyMCE

这是一篇关于在粘贴到 YUI 时清理 word 格式的好帖子。

希望这会给你一个很好的介绍这个非常复杂的话题。

于 2012-04-13T15:54:57.217 回答
0

您不能使用 textarea 来做到这一点,而是使用带有contenteditable属性的 div。请参阅https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand

于 2018-09-30T11:57:54.917 回答