我已经创建并格式化了一个图表,现在需要再次用同一张图表填充其他数据。问题:在 OpenOffice Calc 4.1.1 中,一旦复制图表(Ctrl+C、Ctrl+V,或 Ctrl+X、Ctrl+V),图表的数据就会与原始数据/工作表断开链接。图表的副本有自己的数据表 - 我无法设置要在此副本中使用的数据范围。由于基础数据会发生变化,因此手动更改图表的数据表并不是明智的解决方案。
可以复制整个工作表,但由于两个数据集都一工作表,我想将两个图表放在同一张工作表上。我也没有找到一种方法来将图表从一个工作表移动到另一个工作表,而不会丢失工作表数据和图表之间的链接。
有人有什么想法吗?还是说我可能只是忽略了显而易见的问题?
答案1
与此同时,我想到了两个可能的解决方案。
解决方案 1并不能真正回答这个问题:LibreOffice 会像 OpenOffice 一样原生地打开 ODS 文件。在 LibreOffice 中复制图表时,图表的副本会保留与数据的链接(使用 Linux 下的 LibreOffice v.4.2.8.2 进行测试)。这仅在所有数据系列的名称都是通过引用表格单元格设置的(或根本没有设置),而不是设置为固定字符串时才有效。
解决方案 2是直接编辑 ODS 文件,这对于少量图表来说非常方便。我进入文件,修改了 XML 树,并有点惊讶地发现以下内容有效:
- 创建 ODS 文件的副本并将扩展名更改为 ZIP
- 提取 content.xml
- 寻找正确的表格(在图表前放置一些独特的文本以便快速找到它)并找到图表(见下文)。
- 复制
<draw:frame>
XML 树的节点。 - 保存 content.xml 并重新集成到 ZIP 文件中,恢复扩展 ODS。
- 在 OpenOffice 中打开该文件。
- 现在您将在完全相同的位置拥有两个图表副本 - 将其中一个拖到另一个位置并编辑数据范围。
content.xml 中的图表如下所示:
<draw:frame ...><draw:object ...><text:p/></draw:object><draw:image .../></draw:frame>
警告:复制<draw:frame>
而不复制相关资源可能会导致文件不一致。始终使用副本。OpenOffice 似乎会自动复制资源 - 但我只针对文件中创建的最新图表进行了测试。
笔记:当然,更简单的解决方案(可能在 OpenOffice 中)仍然受到欢迎。