从Html源代码在Excel中创建注释

时间:2011-09-01 20:19:01

标签: html excel

因此,可以从Html创建一个excel文件。而且我发现许多事情都是可能的,例如添加图像,格式化等等,只需要进行一些CSS调整。

但是,我现在要做的就是让小红三角评论显示出来。

我创建了一个空白的excel文件,只有注释,但它生成的HTML是一团糟。而且我相信它的大部分都是多余的。有没有人这样做过,或者知道如何让它发挥作用?

如果它像<td title="comment">text</td>一样简单,那就太好了,但事实并非如此。

编辑:我有必要的基础知识,以便html在加载到excel中时显示注释...我只需要看看我是否可以将vml修剪为更简单的东西。

它所连接的单元格的链接似乎是这样的:    0    0

现在我只需要正确定位,最初

我认为这是最低限度,我通过稍微修改html添加了第二条评论。

但是,如果你可以帮助进一步减少它,那将是非常有用的

<html xmlns:v="urn:schemas-microsoft-com:vml"
    xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns="http://www.w3.org/TR/REC-html40">
<body>
    <table>
        <tr>
            <td>cell 1</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td>cell 3</td>
        </tr>
    </table>

    <div style='mso-element:comment-list'>
        <div style='mso-element:comment'>
            <!--[if gte mso 9]>
            <xml>
             <v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe">
              <v:stroke joinstyle="miter"/>
              <v:path gradientshapeok="t" o:connecttype="rect"/>
             </v:shapetype>
             <v:shape id="_comment1" type="#_x0000_t202" 
                    style='width:96pt;height:55.5pt;z-index:1;visibility:hidden' 
                    fillcolor="infoBackground [80]" o:insetmode="auto">
              <v:textbox style='mso-direction-alt:auto'/>
              <x:ClientData ObjectType="Note">
               <x:Row>0</x:Row>
               <x:Column>0</x:Column>
              </x:ClientData>
             </v:shape>
             <v:shape id="_comment2" type="#_x0000_t202" 
                    style='width:96pt;height:55.5pt;z-index:1;visibility:hidden' 
                    fillcolor="infoBackground [80]" o:insetmode="auto">
              <v:textbox style='mso-direction-alt:auto'/>
              <x:ClientData ObjectType="Note">
               <x:Row>1</x:Row>
               <x:Column>3</x:Column>
              </x:ClientData>
             </v:shape>
            </xml>
            <![endif]-->
            <div v:shape="_comment1" >
                This is a comment
            </div>
            <div v:shape="_comment2" >
                This is another comment
            </div>
        </div>
    </div>
</body>
</html>

3 个答案:

答案 0 :(得分:2)

我没有能够确定的简单方式。但这是一个复杂的方式:

  1. 获取简单的html文件并在Excel中打开它。
  2. 向单元格添加评论。
  3. 保存,保留html格式。
  4. 这不简单的原因是Excel当时实际做的是创建一个包含一些支持文件和原始文件的新版本的文件夹 - 实质上是Excel文件的HTML表示。如果您使用支持文件重新打开此文件,您将收到您的评论。

    这告诉你的是,有一种预期的html格式(虽然它不存在于一个文件中),它会给你你的评论,你只需要对它进行逆向工程。

    有可能吗?是。这值得吗?好吧,鉴于微软从未在一百行代码中写出任何东西,他们无法写入千分之一 - 几乎肯定不会。

    我很好奇你还能沿着这些方向完成了什么。我已将此答案作为社区维基,因此如果您有兴趣,可以分享。

答案 1 :(得分:1)

我认为这是最低限度,我通过稍微修改html添加了第二条评论。

<html xmlns:v="urn:schemas-microsoft-com:vml"
    xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns="http://www.w3.org/TR/REC-html40">
<body>
    <table>
        <tr>
            <td>cell 1</td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td>cell 3</td>
        </tr>
    </table>

    <div style='mso-element:comment-list'>
        <div style='mso-element:comment'>
            <!--[if gte mso 9]>
            <xml>
             <v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe">
              <v:stroke joinstyle="miter"/>
              <v:path gradientshapeok="t" o:connecttype="rect"/>
             </v:shapetype>
             <v:shape id="_comment1" type="#_x0000_t202" 
                    style='width:96pt;height:55.5pt;z-index:1;visibility:hidden' 
                    fillcolor="infoBackground [80]" o:insetmode="auto">
              <v:textbox style='mso-direction-alt:auto'/>
              <x:ClientData ObjectType="Note">
               <x:Row>0</x:Row>
               <x:Column>0</x:Column>
              </x:ClientData>
             </v:shape>
             <v:shape id="_comment2" type="#_x0000_t202" 
                    style='width:96pt;height:55.5pt;z-index:1;visibility:hidden' 
                    fillcolor="infoBackground [80]" o:insetmode="auto">
              <v:textbox style='mso-direction-alt:auto'/>
              <x:ClientData ObjectType="Note">
               <x:Row>1</x:Row>
               <x:Column>3</x:Column>
              </x:ClientData>
             </v:shape>
            </xml>
            <![endif]-->
            <div v:shape="_comment1" >
                This is a comment
            </div>
            <div v:shape="_comment2" >
                This is another comment
            </div>
        </div>
    </div>
</body>
</html>

答案 2 :(得分:0)

这是非常及时的,非常感谢!我刚刚实施,似乎工作正常。最大的问题是必须预先确定为我“弯曲”的行和列。我正在寻找是否可以使用锚而不是行和列。