在不关闭LibreOffice的情况下,通过Python脚本更新以前打开的LibreOffice spreasdsheet
我有一个LibreOffice电子表格(data.ods),在30列中包含大约500行逗号分隔的值。第一行包含列标题 Data.ods通过脚本在一天中定期更新。然后,我在另一个电子表格(main.ods)中有几个指向data.ods中单元格的链接 我目前正在做以下工作: 1) 使用Python脚本生成data.ods 2) 打开data.ods,以便LibreOffice执行逗号分隔值的文本导入以填充行 3) 打开main.ods(它会自动更新链接) 我目前不能简单地让main.ods保持打开状态,因为即使在关闭data.ods之后,LibreOffice似乎仍然对文件有某种锁定,并且在我完全关闭LibreOffice(需要关闭main.ods)之前不允许我的脚本编辑data.ods 我想做以下几点: 1) 打开main.ods 2) 通过脚本生成data.ods 3) 使用编辑…链接…更新值将更新的值导入main.ods 4) 让main.ods打开 5) 通过脚本生成新的data.ods 6) 使用编辑…链接…更新值将更新的值导入main.ods在不关闭LibreOffice的情况下,通过Python脚本更新以前打开的LibreOffice spreasdsheet,python,csv,libreoffice,Python,Csv,Libreoffice,我有一个LibreOffice电子表格(data.ods),在30列中包含大约500行逗号分隔的值。第一行包含列标题 Data.ods通过脚本在一天中定期更新。然后,我在另一个电子表格(main.ods)中有几个指向data.ods中单元格的链接 我目前正在做以下工作: 1) 使用Python脚本生成data.ods 2) 打开data.ods,以便LibreOffice执行逗号分隔值的文本导入以填充行 3) 打开main.ods(它会自动更新链接) 我目前不能简单地让main.ods保持打开状
7) 必要时重复。您可能知道,有一些方法可以通过Python脚本处理Open/Libre Offie。它甚至附带了自己的Python解释器 问题在于,关于如何操作的文档非常糟糕——但其中一个功能恰恰是让外部运行的Python脚本能够访问界面上打开的文档(如电子表格),并为其添加值 虽然速度很慢,但效果很好——因为你说的只是几百行,速度并不重要 现在,让我尝试查找相关文档,并为您提供一个从何处开始的链接:
如果将示例代码粘贴到Python交互提示符中(需要是随LibreOffice安装的Python),您将能够使用Python的
dir
反省可用的方法和属性,并找到从脚本编辑单元格内容的方法调用。正如jsbueno所提到的,通过使用uno模块,可以在文档打开时(并且不会阻止手动编辑文档)在文档上运行Python
同意文件目前是垃圾。我正试图在/上对此做些什么,但重点放在作家身上。然而,这些程序是相似的,您可能会发现打开文档、导航文档等的方法很有用——一旦您开始使用Python编程LibreOffice/OpenOffice,解决下一个问题就相当容易了
在互联网上,Java中的示例通常比Python中的多,不幸的是,如何在示例之间进行转换(在我的文档的待办事项列表中)只有一半是显而易见的。好消息是Python方法通常要简单得多。展示您到目前为止所拥有的,并告诉我们问题所在。否则听起来像是你要我们为你写代码!这将是愚蠢的。无论是谁处理过LibreOffice和脚本,这个问题都非常清楚。这不是需要代码,而是知道该走哪条路。谢谢,这似乎是我应该走的正确道路。如果我有任何进一步的问题,我会报告。如果基础数据电子表格是CSV,则使用文件…重新加载是一个简单的解决方案。QuiteUserName的回答我不完全清楚。经过研究,我发现这种方法非常适合这种情况。Python导出到csv,csv链接到ods文件中的一个工作表,并标记另一个工作表以从链接的工作表中绘制数据。重新加载需要被触发,有多种简单的方法可以实现。