【问题标题】:Embed file in excel worksheet/cell在 Excel 工作表/单元格中嵌入文件
【发布时间】:2018-12-18 16:34:43
【问题描述】:

我希望有人可以帮助我。有没有办法将特定文件(.txt)嵌入到 Excel 单元格中?我目前正在使用 epplus,我想以编程方式将文件嵌入到特定的 excel 单元格中。我确实设法添加了一个超链接,但我的目标是嵌入它。

Worksheet.Cells[rowNumber, colNumber].Value = ....

有什么办法吗?我在网上找不到任何东西。

【问题讨论】:

  • 明确地说,您想以编程方式将myFile.txt全部内容 放在Excel 中的单个单元格中吗?还是要将.txt 文件添加为对象,然后双击打开文件?
  • 应该不是问题。文本文件的内容是一个字符串,因此您可以读取它并将其放入单元格中。
  • 我想将.txt文件添加为对象,双击打开。我不希望它作为该文件的链接,我想嵌入它。

标签: c# excel interop office-interop epplus


【解决方案1】:

正如 cmets 中所述,您当然可以将文本放在一个单元格中,但请记住 Excel 确实对单个单元格中允许的字符数有限制。它非常大,但可以想象,文本文件的内容可能会超过该限制——即使未来版本的 Excel 不断增加限制(就像过去一样)。

您也可以在您的工作表中嵌入一个 OLE 对象,而一个文本文件也可以做到这一点。我不知道你可以将它分配给一个单元格,就其本身而言。您可以更改位置、形状和行为以适合单元格并表现得好像它是单元格的一部分,但我不知道它是否曾经像公式那样属于某个范围。我可能是错的。

如何将 OLE 对象嵌入工作表的基本结构如下:

Excel.OLEObject ole = ws.OLEObjects().Add(Filename: @"C:\Users\hambone\Documents\foo.txt");

这相当于 VBA:

Set ole = sh.OLEObjects.Add(Filename:="C:\Users\hambone\Documents\foo.txt")

该方法返回一个 OLEObject 对象,然后您可以将其调整为您想要的行为方式:

ole.Height = 5;

【讨论】:

  • 我尝试过使用OLEObjects,但我不知道如何实现它,因为这是互操作的,我只在我的整个程序中使用了epplus。
  • 啊,您的标签具有互操作性,所以我认为这是桌面上的一个选项。 EPPlus 很棒,但它确实有功能限制,你可能已经找到了。 Interop 可以访问 VBA 运行时库,所以没有什么不能做的。
  • 这可能是桌面上的一个选项。我在 Excelpackage 上保存后尝试使用它,但出现错误“‘对象’不包含‘添加’的定义,并且找不到接受‘对象’类型的第一个参数的扩展方法‘添加’(你是缺少 using 指令或程序集引用?)"
猜你喜欢
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多