【发布时间】:2020-10-07 07:48:34
【问题描述】:
我正在尝试创建一个 libreoffice 基本宏,它可以让您将文件的全部内容复制到表格行中。下面的代码适用于文本文件,例如 .ods 或 .txt,但对于 .pdf 和 .ods 文件有一些问题。特别是它在 getText() 方法上崩溃。 您知道我可以使用什么其他方法来解决我的问题吗?
`
REM ***The file Url***
sUrlDoc = "file:///C:/Users/user/Desktop/Test.ods"
REM ***It correctly opens the file***
oDoc = StarDesktop.loadComponentFromURL(sUrlDoc, "_blank", 0, Prop() )
REM ***Correctly inserts a new row in the table***
oTable.Rows.insertByIndex(oTable.getRows().getCount(),1)
REM ***It goes into the right position***
oCell = oTable.getCellByPosition(0,1)
REM ***Should read from file (only works with .odt and .txt)***
oCursor = oDoc.getText(1)
oCell.setString(oCursor.string)
oDoc.close(true)`
【问题讨论】:
-
欢迎来到 SO!请告诉我们更多关于你在做什么。有一种方法可以复制电子表格的内容。 PDF 文件可能会出现问题 - 并非所有此类文件都包含文本,有些可能包含图像、文档扫描件。告诉我们要解决的问题——为什么要将文件内容复制到表格行中?
-
嗨,John,好吧,基本上我两天前就开始创建宏了,所以我是语言新手。我的老板问我是否可以想办法将用户可以选择的其他文件的全部内容(这些文件只包含文本)插入到 .ods 文件中。我使用户可以插入要包含的文件列表,并记下路径。因此,单击按钮应显示所选文件的全部内容。本练习的最终目的是在打印时将这些文件显示在“较大的文件”中。
-
“我两天前就开始创建宏了” 哦,欢迎来编程!我不太明白你老板的想法,但问题是可以解决的。请澄清 - 结果将累积在 ODT 文本文档(如问题标题中所述)或 ODS 电子表格中(如您在评论中指出的那样)?
-
对不起,如果我看起来有点混乱:我的最终目的是将 ODS 电子表格的全部内容复制到 ODT 文件中。我老板的意图是最终获得一个ODT文件,其中包含来自不同ODS文件的文本。
标签: libreoffice libreoffice-calc libreoffice-basic libreoffice-writer