在用Java编写的OpenOffice/LibreOffice Calc(Spreadsheet)的UNO扩展中,如何确定UDF(电子表格函数)实现中的调用单元?
备注
Application.Caller
这也是Apache OpenOffice Bugzilla上的功能请求
我有一些*.xls(excel 2003)文件,我想将这些文件转换为xlsx(excel 2007).
我使用uno python包,当我保存文件时,我可以设置过滤器名称:MS Excel 97但是没有过滤器名称,如'MS Excel 2007',
请帮帮我,如何设置过滤器名称将xls转换为xlsx?
我通过Java UNO Runtime Reference api以编程方式在开放式办公室绘制中绘制流程图.在我绘制流程图之后,我想根据绘制的内容所获得的区域调整页面大小.我注意到Microsoft Visio有一个属性在我的"页面设置"中称为"尺寸以适合绘图内容",当我在Visio.Pls中绘制流程图时这样做.建议我如何在Open office/Libre Office Draw中执行相同的操作.
我正在使用OpenOffice.org来满足我不那么频繁的Office套件需求,而且大部分时间它都足以替代它的商业替代品.
虽然它是脚本API但它不足之处.我还没有找到能够理解API的文档,让我可以专注于手头的任务,而不是徘徊如何在打开的文档中选择一段文本.
那么 - 有没有一个很好的文档可以让像我这样的程序员,不完全生活和呼吸UNO对象模型,快速启动和解释几页或更少,如何在OO.o API中找到我需要的东西
这个问题主要针对 Windows + LibreOffice + Python 3。
我已经安装了 LibreOffice (6.3.4.2),并且
pip install unoconv
(pip install unotools
是pip install uno
另一个不相关的库),但在之后我仍然收到此错误import uno
:
ModuleNotFoundError:没有名为“uno”的模块
更一般地说,作为 UNO 使用的示例,如何使用 LibreOffice UNO 打开 .docx 文档并将其导出为 PDF?
几天来我对此进行了广泛的搜索,但我还没有找到可在 Windows 上运行的可重现的示例代码:
无头使用soffice.exe
,请参阅我的问题+答案Headless LibreOffice 在 Windows 上导出到 PDF 非常慢(比 Linux 慢 6 倍)以及答案的注释:它“可以”使用,soffice.exe --headless ...
但更接近 COM 交互(组件对象模型) )对于许多应用程序都是有用的,因此这个问题在这里
相关论坛帖子,以及LibreOffice:使用Python脚本编程,但是uno应该如何安装在Windows上,使用Python,没有详细说明;还有关于 LibreOffice 到 Python 宏编写的详细教程,尤其是 Calc
我也尝试过这个(不成功):Getting python to import uno / pyuno: …
在家里,在Linux上,我已经尝试使用pyUNO来使用Python控制OpenOffice.org.我一直在使用Python 2.6.这一切似乎很好用.
现在我想我会在Windows上尝试我的一个脚本(为ODF doc运行图形差异).但是当我试图运行它时,我得到了:
ImportError: No module named uno
Run Code Online (Sandbox Code Playgroud)
根据udk:Python UNO Bridge和OpenOffice.org在Windows上运行Python,我必须运行随OpenOffice.org安装的Python解释器.
Q1:OpenOffice.org可以使用Python 2.6吗?
但是,那个解释器是Python 2.3,它有点老了!我的脚本使用2.3(subprocess
模块)不支持的功能.
Q2:Windows上的pyUNO编程是否可以使用标准Python发行版的pyUNO附加组件,而不是与OpenOffice.org捆绑在一起的Python?
在我的搜索到目前为止,我还没有找到任何迹象表明有一个pyUNO模块可以安装到标准的Python Windows发行版中...这是一个惊喜,因为在Ubuntu Linux上,UNO支持得很好Python只是通过:
apt-get install python-uno
Run Code Online (Sandbox Code Playgroud)
另一个问题是:如果我想制作一个同时使用pyUNO和其他第三方库的程序,该怎么办?我无法在Windows上的Python安装中安装pyUNO,所以我不得不以某种方式将我的其他第三方库安装到OpenOffice.org的捆绑Python中?这使得创建更大,更全功能的程序变得困难.
我错过了什么,或者我们现在仍处于这种状况?
我刚刚开始使用LibreOffice的4.0.1 UNO SDK开发一个Java项目,aaaand ...我在开始时几乎陷入困境.如果我使用OpenOffice.org而不是LibreOffice,我认为同样适用,所以任何帮助都表示赞赏.
我正在使用Eclipse Juno 4.2,我创建了一个类似"Hello World"的项目.我将/program
目录添加到类路径(添加为外部类文件夹),并在此行代码的开头
XComponentContext ctx = Bootstrap.bootstrap();
Run Code Online (Sandbox Code Playgroud)
UnsatisfiedLinkError
使用以下堆栈跟踪抛出异常:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jpipe in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.sun.star.lib.util.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:50)
at com.sun.star.lib.connections.pipe.PipeConnection.<clinit>(PipeConnection.java:48)
at com.sun.star.lib.connections.pipe.pipeConnector.connect(pipeConnector.java:110)
at com.sun.star.comp.connections.Connector.connect(Connector.java:114)
at com.sun.star.comp.urlresolver.UrlResolver$_UrlResolver.resolve(UrlResolver.java:108)
at com.sun.star.comp.helper.Bootstrap.bootstrap(Bootstrap.java:301)
at xx.test.unotest.UnoTest.main(UnoTest.java:16)
Run Code Online (Sandbox Code Playgroud)
甚至try/catch
围绕指令,但它没有被触发.
关于开始使用UNO,我找不到合适的文档,所以我不知道出了什么问题.安装SDK并配置环境变量.
我错过了什么吗?
编辑:我使用Windows 7 64位.也许这与问题有关.
我的观点是,使用任一吊舱(从APPY框架,这是使用对我来说是痛苦)或OpenOffice的UNO桥,似乎很快就被弃用,而这需要OOo.org同时发动我的脚本运行是不理想可言.
任何人都可以指出我一个简洁而干净的ODT(桌子是我的优先级)的简洁方法,而不必再自己编码吗?
编辑:我正在尝试ODFpy似乎做我需要的东西,稍后会更多.
我想知道是否可以使用c#以编程方式读取OpenOffice Calc电子表格,我可以为Excel(.xls和.xlsx)执行此操作,但无法找到读取计算电子表格的解决方案.
如果有人有解决方案,帮助我.
我在php中编写了以下函数
public static function convert($originFilePath, $outputDirPath, $toFormat)
{
$command = 'echo $PATH & UNO_PATH=/usr/lib/libreoffice unoconv --format %s --output %s %s';
$command = sprintf($command, $toFormat, $outputDirPath, $originFilePath);
exec($command, $output, $result_var);
return compact('output', 'result_var', 'outputDirPath', 'originFilePath', 'toFormat');
}
Run Code Online (Sandbox Code Playgroud)
它没有生成任何错误消息,也没有生成任何pdf文件.
在终端中,当我直接将unoconv作为www-data运行时,我没有任何问题.
这是我执行后的结果:
2013-05-26 03:05:30 Error: Array
(
[output] => Array
(
[0] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
)
[result_var] => 1
[outputDirPath] => /var/virtual/storyzer.com/cake-json/ltequotationapp/webroot/outputfiles/Excel/2
[originFilePath] => /var/virtual/storyzer.com/cake-json/ltequotationapp/webroot/outputfiles/Excel/2/dsadas.xlsx
[toFormat] => pdf
)
Run Code Online (Sandbox Code Playgroud)
请指教.