在 libre-office 中,我需要将大量数据从一个文件加载到另一个文件中。要加载单元格内容,我使用以下代码:
=DDE("soffice";"file://path-to-my-file/my-file.xlsx";"mysheet.A2")
问题:我需要加载很多单元格,但无法手动编写每个 DDE 命令(或复制粘贴)
我需要复制的单元格编号遵循一个简单的规则,即以 10 为增量。下面给出了我的单元格所需的代码示例,其中单元格编号位于 <brackets> 中。
cell1: =DDE("soffice";"file://path-to-my-file/my-file.xlsx";"mysheet.A<X>")
cell2: =DDE("soffice";"file://path-to-my-file/my-file.xlsx";"mysheet.A<X+10>")
cell3: =DDE("soffice";"file://path-to-my-file/my-file.xlsx";"mysheet.A<X+20>")
我以为只要写三行单元格,然后拖动单元格进行复制,这个数字就会自动增加相应的量。但这并不奏效,它只是一遍又一遍地复制这三个条目。
有没有一种简单的方法来“编码”这个,这样我就不必手动写入/复制所有单元格?
答案1
我正在寻找的函数被称为抵消并且同时存在于EXCEL和Libre Office中。
=OFFSET('file:///home/path/to/my/file/my-file.xlsx'#$my_sheet.$B$2, (ROW()-1)*3,0)
- 第一个参数是 my-file.xlsx 的完整路径,包括工作表并以单元格结尾。重要提示:$行和列都是绝对强制性的。
- 第二个参数是行选择。*10每 10 行选择一次。-1是必要的,因为在我的目标笔记本中,我相对原始数据的位置移动了一行。
- 第三个参数可用于列选择。由于我只对行选择感兴趣,因此我将其保留为零。
如果将此单元格向下拖动,其他单元格将会填充所需的值。
我在这里描述的语法对于 Microsoft Office、LibreOffice 和 OpenOffice 略有不同。例如,用于分隔参数的字符是“,”或“;”。