从Word复制到textarea保持格式

时间:2012-04-13 15:39:39

标签: html ms-word

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

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

以下是从单词复制并微调着色和间距后使用的文本示例:

<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>

2 个答案:

答案 0 :(得分:2)

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

由于您没有提及有关重新发明轮子的任何内容,我认为最佳答案是使用a rich text editor with "paste from word" support,例如YUI Rich Text EditorTinyMCE

这是一篇关于cleaning up word format when pasting into YUI的好文章。

希望这能为您介绍这个非常复杂的主题。

答案 1 :(得分:0)

您不能使用textarea来执行此操作,而只能使用具有contenteditable属性的div。参见https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand

相关问题