【问题标题】:Insert cell comments in excel programmatically以编程方式在excel中插入单元格注释
【发布时间】:2008-10-21 17:43:21
【问题描述】:

使用 c# 和 .net 3.5 以编程方式在 excel 2007 文件中插入单元 cmets 的更好方法是什么?

【问题讨论】:

  • 您目前如何处理文档?
  • 我正在解压打开的xml文档并自己编写必要的cmets?.xml。我还在编写关系、vmlDrawing 文档并在 sheet?.xml 中添加 legacyDrawing 元素。但是当我压缩文件夹时,将其扩展名更改为 .xlsx 并尝试在 excel 中打开它会出错。

标签: c# excel .net-3.5 openxml


【解决方案1】:

我只是这样做了,但使用的是 MS Word(使用 Microsoft.Office.Interop.Word

range.Comments.Add(range, ref _categoryMessage);

所以,我建议使用 Microsoft.Office.Interop.Excel 和类似的方法。 从 MSDN 考虑这一点:

https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.excel.range.addcomment

也见this

【讨论】:

  • 可能需要和编辑器一起玩才能让整个链接正常工作
  • 谢谢,肯尼。但是当我这样做时,我的程序正在启动一个名为 excel 的进程。这是否意味着我需要在我的计算机上安装 ms excel?
  • 是的。抱歉,这些互操作调用需要 Excel。
  • 还有一点值得一提的是,当您使用 Interop.Excel 时,没有 Excel 库可再发行组件。因此,该应用程序的用户还需要在他们的机器上安装 Excel。如果您需要为本地没有安装Excel的目标编写应用程序,您需要直接修改.xml。我相信那里有一些很好的实用程序。
  • 对于那些绊脚石的人。从这个答案开始,我使用 ClosedXML 直接创建/修改 Excel 文件。我不是 100% 他们允许访问 cmets,但很有可能。 closedxml.codeplex.com
【解决方案2】:

接受的答案指向正确的方向,但正确的语法是:

Excel.Range cell; 
cell.AddComment("My comment");

【讨论】:

    【解决方案3】:
    Excel._Worksheet oSheet =
      (Microsoft.Office.Interop.Excel._Worksheet) excelWorkbook.ActiveSheet;
    oSheet.Cells[2, 3].Cells.AddComment("Selam");
    

    【讨论】:

      【解决方案4】:

      您尝试过使用 VSTO 吗?您可以轻松加载 Excel 文档并对其进行操作。要向单元格添加注释,请加载文件,激活工作表,然后选择单元格作为范围并设置注释。

      【讨论】:

        猜你喜欢
        • 2012-08-05
        • 1970-01-01
        • 1970-01-01
        • 2014-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多