如何在 Excel 中插入对象:嵌入与链接文件

Excel 广泛用于数据分析和报告生成,但许多工作流程依赖于 PDF、Word 文档或其他电子表格等辅助文件。与其单独管理这些文件,不如在 Excel 中插入对象,将所有内容整合到一个工作簿中,实现统一管理。

“插入对象”功能允许您将外部文件直接嵌入或链接到工作表中,既提升了文件的可访问性,又减少了文档碎片化。掌握如何在 Excel 中插入对象的技巧,对于构建报告、共享工作簿或创建自动化文档流程尤为重要。

本指南将介绍通过手动操作VBAPython三种方式在 Excel 中插入对象的方法,帮助您根据工作流程、可扩展性需求和技术环境选择最合适的方案。

快速导航

什么是 Excel 中的对象?

当您在 Excel 中选择 “插入” → “对象” 时,您正在使用 OLE(对象链接与嵌入) 技术。OLE 允许一个应用程序直接在另一个应用程序创建的工作簿中显示或与内容进行交互。

您可以插入多种文件类型,包括:

  • PDF 文件
  • Microsoft Word 文档
  • PowerPoint 演示文稿
  • 图像
  • 其他 Excel 工作簿
  • 自定义或专有文件格式

Excel 支持两种主要的插入模式:

类型 存储在工作簿中 自动更新 对文件大小的影响
嵌入对象 文件较大
链接对象 是(如果源文件更改) 文件较小

嵌入对象

嵌入对象成为工作簿的一部分,使文件完全自包含。这对于需要随工作簿一起分发的文件非常理想,例如客户报告、合规记录或归档文档。主要缺点是会增加文件大小。

链接对象

链接对象仅存储对原始文件的引用。Excel 可以自动反映源文档的更新,从而保持工作簿体积较小。这适用于频繁更新的文件、大型文档或集中管理的资源。主要风险是,如果移动或重命名源文件,链接将会失效。

方法一:在 Excel 中手动插入对象

对于日常场景,手动在 Microsoft Excel 中插入对象是最快且最直接的方法。它无需高级技巧,尤其适用于只需附加少量文件的情况。

从现有文件插入对象

请按以下步骤操作:

  1. 打开您的 Excel 工作簿。

  2. 切换到 “插入” 选项卡。

  3. 在“文本”组中点击 “对象”

    Microsoft Excel 中的“插入对象”功能

  4. 选择 “由文件创建”

  5. 点击 “浏览” 并选择您的文件。

  6. 选择以下选项之一:

    • 链接到文件 — 创建链接对象而非嵌入对象。
    • 显示为图标 — 显示图标而非预览第一页或内容。

    Excel 中的对象插入选项

  7. 点击 “确定”

对象将出现在工作表中,您可以像调整形状一样重新定位或调整其大小。

提升可用性的技巧

在 Excel 中插入对象时,请考虑以下最佳实践,以保持清晰度和功能性:

  • 对大型文件或仪表板使用图标: 将对象显示为图标可保持工作表整洁,便于导航,避免布局混乱。
  • 尽可能链接大型文件: 链接而非嵌入有助于减小工作簿大小,提升整体性能。
  • 为链接对象维护稳定的文件路径: 为避免链接失效,请将链接文件存放在固定目录中,避免频繁移动或重命名。
  • 在 macOS 上测试嵌入对象: 某些基于 Windows 的 OLE 对象可能在 Mac 上无法正确渲染,因此请跨平台验证共享工作簿。
  • 检查编辑权限: 如果文件权限、工作簿保护或兼容性设置限制了编辑,对象可能会以只读模式打开。请确保用户可以按需访问和修改对象。

您可能还喜欢:如何在 Excel 中插入公式

方法二:使用 VBA 在 Excel 中插入对象

当插入操作变得重复时,VBA 提供了一种在 Excel 内部自动化该过程的高效方法。

运行 VBA 代码的位置

在 Microsoft Excel 的 Visual Basic 编辑器 (VBE) 中运行宏:

  1. 打开您的工作簿。

  2. Alt + F11 打开 Visual Basic 编辑器。

  3. 点击 “插入” → “模块”

    Excel 中的 Visual Basic 编辑器

  4. 将以下代码粘贴到模块中。

    Excel 中的 Visual Basic 代码

  5. F5 运行宏,或从“宏”菜单中执行。

1
2
3
4
5
6
Sub InsertOLEObject()
ActiveSheet.OLEObjects.Add _
Filename:="G:\文档\示例.docx", _
Link:=False, _
DisplayAsIcon:=True
End Sub

重要参数

  • Filename — 文件的完整路径
  • LinkTrue 创建链接对象;False 嵌入对象
  • DisplayAsIcon — 控制视觉外观
  • IconLabel — 可选的自定义标签

何时使用 VBA

当自动化仍围绕 Excel 进行时,VBA 是理想选择。

如果您符合以下情况,请考虑使用 VBA:

  • 维护结构化的报告模板
  • 需要按钮驱动的工作流程
  • 主要在 Microsoft 环境中操作

注意: VBA 需要安装 Excel,不适用于云端或服务器端执行。

方法三:使用 Python 自动化插入文档到 Excel

对于自动化工作流程或大规模文档生成,Python 提供了一种强大的方式,无需依赖本地安装的 Microsoft Excel 即可将 OLE 对象插入 Excel。这使其特别适用于后端服务、报告管道和基于云的文档系统。

在本示例中,我们将把一个 Word 文档嵌入 Excel,并显示其第一页的预览。

安装所需库

运行示例前,请安装必要的库:

1
pip install spire.xls spire.doc

此处我们使用:

示例:嵌入 Word 文档并显示其预览

以下示例将一个 Word 文档嵌入工作表,并将其第一页渲染为预览图像。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from spire.xls import Workbook, Stream, OleLinkType, OleObjectType
from spire.doc import Document, ImageType

# 创建新工作簿
workbook = Workbook()
sheet = workbook.Worksheets.get_Item(0)

# Word 文档路径
word_path = "Sample.docx"

# 加载 Word 文档
doc = Document()
doc.LoadFromFile(word_path)

# 将第一页转换为图像
image_stream = doc.SaveImageToStreams(0, ImageType.Bitmap)

# 插入文档并使用图像作为预览
ole_object = sheet.OleObjects.Add(
word_path,
Stream(image_stream.ToArray()),
OleLinkType.Embed
)

# 配置对象
ole_object.ObjectType = OleObjectType.WordDocument
ole_object.DisplayAsIcon = False
ole_object.Location = sheet.Range.get_Item(2, 2)

# 保存工作簿
workbook.SaveToFile("output/ExcelOLE.xlsx")
workbook.Dispose()
doc.Dispose()

以下是生成的包含嵌入 Word 文档的 Excel 文件预览:

由 Python 生成的包含嵌入 Word 文档的 Excel 工作表

此脚本的功能

  • 创建 Excel 工作簿
  • 将 Word 文档的第一页转换为图像
  • 将文件作为 OLE 对象嵌入
  • 显示视觉预览而非图标
  • 将对象定位在第 2 行第 2 列

所有步骤均以编程方式运行——无需人工交互。

不仅限于 Word 文档

OLE 对象不仅限于 Word 文件。您可以将多种文件类型直接嵌入工作表,包括 PDFPowerPoint 演示文稿Excel 工作簿OpenDocument 文件图像其他附件。这使得在一个工作簿中打包辅助文档或创建符合审计要求的报告变得轻而易举。

您还可以自定义嵌入对象的显示方式。例如,预览图像可以从文档本身生成,替换为自定义缩略图,或显示为图标以获得更简洁的布局。

若要在插入前将不同文档类型转换为图像,可参考以下教程:

转换后,在创建 OLE 对象时传入图像流。这种方法让您能够灵活控制对象外观,同时保持报告的专业性和可读性。

为何此方法具有良好的可扩展性

编程式插入比手动操作或宏提供更深层的控制。您可以精确定义对象位置、调整尺寸、选择嵌入或链接,并动态生成预览图像。

因此,Python 成为对一致性和效率要求较高的生产级文档自动化的理想选择。

有关在 Excel 工作表中自动化插入 OLE 对象的更多技术信息,请参阅:如何使用 Python 将 OLE 对象插入 Excel 文件

嵌入对象与链接对象:如何选择

选择嵌入还是链接对象取决于工作簿的使用方式以及您对源文件的管理策略。

何时选择嵌入

如果出现以下情况,请选择嵌入对象:

  • 工作簿需要便携或对外共享
  • 对外部文件的访问受限
  • 您希望避免在自动化或批量工作流程中出现链接失效

注意: 嵌入会增加工作簿大小。

何时选择链接

如果出现以下情况,请选择链接对象:

  • 需要保持文件体积较小
  • 源文档频繁更新
  • 文件存储在集中位置并得到一致管理

** caution:** 移动或重命名链接文件可能导致连接中断,因此合理的文件组织至关重要。

性能与文件大小最佳实践

向 Excel 插入对象可能会影响工作簿性能,尤其是在处理大型或大量文件时。了解最佳实践有助于保持工作簿高效且响应迅速。

管理文件增长

嵌入大型文档会迅速使工作簿大小增至数十甚至数百兆字节。为控制文件增长:

  • 在嵌入前压缩文档
  • 避免包含非必需文件
  • 若无需便携性,可考虑链接大型文件

监控内存使用

创建大量工作簿或嵌入多个对象会增加内存消耗。通过以下方式最小化问题:

  • 保存后释放资源
  • 尽可能避免超大文件
  • 对大规模自动化任务分批处理工作簿

优化工作簿加载速度

包含大量嵌入对象的工作簿可能打开较慢。如果快速加载至关重要,链接对象可在保持访问源内容的同时,平衡性能与功能。

关于在 Excel 中插入对象的常见问题

我可以将 PDF 插入 Excel 吗?

可以。使用 “插入” → “对象” → “由文件创建” 嵌入 PDF,或使用 VBA 或 Python 自动化该过程。

如何编辑嵌入的对象?

双击对象,即可在其原生应用程序中打开。

为什么我的链接对象没有更新?

请确认原始文件路径未更改,且源文件可访问。

我可以在不打开 Excel 的情况下插入对象吗?

可以。Python 库允许您在未安装 Microsoft Excel 的情况下生成 Excel 文件并插入 OLE 对象。

结论

在 Excel 中插入对象 有助于将工作表转变为集中的文档中心。无论您是为了便携性而嵌入文件、为效率而链接文件,还是通过 VBA 或 Python 实现自动化插入,合适的方法取决于您的工作流程。

手动插入适用于快速任务。VBA 可简化结构化的 Excel 流程。Python 则为现代数据环境提供可扩展的自动化能力。选择合适的方法并遵循性能最佳实践,可确保您的工作簿保持有序、高效且易于维护。