如何从 MySQL 数据库实时更新 LibreOffice Calc 单元格?

Posted

技术标签:

【中文标题】如何从 MySQL 数据库实时更新 LibreOffice Calc 单元格?【英文标题】:How can I update LibreOffice Calc cells in real-time from a MySQL database? 【发布时间】:2015-06-24 20:49:36 【问题描述】:

我正在寻找一个程序来实时更新 LibreOffice Calc 中的单元格(或至少以某个固定的刻度),并使用从 mysql 数据库中提取的数据。理想情况下,当数据库中的值更新时,电子表格中的相应单元格将更新,以便 calc 中存在的任何公式或计算将继续对新值进行操作。到目前为止,我还没有找到一种以这种方式动态和以编程方式插入数据的方法。有可能吗?

【问题讨论】:

【参考方案1】:

LibreOffice 组件 Base 是处理查询、表单和报告的数据库前端。虽然默认情况下它使用嵌入式版本的 HyperSQL 数据库来管理表,但它附带了适用于任意数量的其他后端程序的驱动程序,包括 MySQL。

我认为解决此问题的最简单方法是使用 MySQL 数据库创建一个 Base 文件作为其后端(注意 Base 只能查看来自 MySQL 的表和视图 - 它不会导入查询;尽管如果需要,您可以将查询保存在 Base 文件中)。确保“注册”基本文件,以便 LibreOffice 的其余部分可以“看到”它。注册文件后,任何打开的 LibreOffice 组件都可以访问 MySQL 中的数据(可以关闭基本文件)。

现在您可以将任何表或视图(来自 MySQL 组件)或查询(来自 Base 文件)导入 Calc:[Tutorial] Using registered datasources in Calc

可以通过 API 调用刷新导入的数据。以下是 StarBasic 代码中的示例:

Sub refresh_DBRanges
    Dim oDBRangesEnum
    Dim oNext

    oDBRangesEnum = thisComponent.DatabaseRanges.createEnumeration()
    while oDBRangesEnum.hasMoreElements()
        oNext = oDBRangesEnum.nextElement()
        oNext.refresh()
    wend

End Sub

请注意,在“注册数据源”教程的第二篇文章中,它提供了 API 调用以在刷新计时器上设置导入范围。

【讨论】:

【参考方案2】:

请注意,注册数据源教程在其页面下方进一步更新。它说可以通过按 F4 访问已注册数据源的列表。曾经是这样,但在版本 5 中发生了变化。现在是 Ctrl+Shift+F4。

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review

以上是关于如何从 MySQL 数据库实时更新 LibreOffice Calc 单元格?的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从Oracle数据库实时复制到MYSQL

如何从 MYSQL 中的数据透视表中获取最后更新的价格

如何在链接服务器上将数据从 mssql 更新到 mysql

如何使用StreamSets从MySQL增量更新数据到Hive

mysql 我如何查询一批数据后,并更新这批数据

如何将数据从 SQL Server 实时或定时同步到 MySQL 数据库